【发布时间】:2014-06-06 13:02:08
【问题描述】:
var Sequelize= require('sequelize')
var sequelize = new Sequelize('db', 'user', 'password',
{pool: { maxConnections: 5, maxIdleTime: 30 }})
var table = sequelize.define('User',
{
trip_paramid: Sequelize.INTEGER
},
{timestamps:false})
table.sync({ force: false }).success(function()
{
table.destroy('`id` >= 5685321').success(function() {
console.log("deleted");
})
table.destroy('`id` >= 9600000').success(function() {
console.log("deleted");
})
table.destroy('`id` >= 15600000').success(function() {
console.log("deleted");
})
table.destroy('`id` >= 20000000').success(function() {
console.log("deleted");
})
table.destroy('`id` >= 25000000').success(function() {
console.log("deleted");
})
table.destroy('`id` >= 35600000').success(function() {
console.log("deleted");
})
})
我在这里使用 sequelize 作为 ORM 来根据条件批量删除行。这是工作。但现在我正在尝试在不使用 sequelize 的情况下执行相同的功能。问题是因为我需要从现有数据库中删除行。在这种情况下,使用 sequelize 成为一个问题。我尝试过不使用 sequelize 的批量删除它也可以工作,但整个过程变得缓慢。
var mysql = require('mysql');
var pool = mysql.createPool({
connectionLimit : 10,
host : 'host',
user : 'user',
password : 'password',
database : 'db',
multipleStatements: true
});
var id=57166;
var query='delete from users1 where id=';
bulkdelete();
function bulkdelete()
{
if(trip_paramid >=57166)
{
pool.query(query+ id+';'+query+(id+1)+';'+query+(id+1)+';'+query+(id+1)+';'+query+(id+1)+';', function(err, results)
{
if (err) throw err;
trip_paramid++;
bulkdelete();
console.log("deleted1");
});
}
}
任何人都可以提出解决此问题的想法。我需要加快进程(在不使用任何 ORM 的情况下在更短的时间内多行)
【问题讨论】:
标签: mysql node.js sequelize.js