gpt4 book ai didi

mysql - 使用 node.js 批量删除 mysql 行

转载 作者:行者123 更新时间:2023-11-29 03:34:47 25 4
gpt4 key购买 nike

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 的情况下在更短的时间内完成许多行)

最佳答案

我可以看到您的代码存在一些问题。

首先,以您的方式将字符串连接到查询中是极其危险的(其他人很容易破解您的东西),而且它本身也很慢并且占用内存。每次执行 + 操作时都会分配一个新字符串。

其次,数据库在集合运算和快速运算方面表现出色;如果您想要获取大于 57166 的所有内容,为什么要一个一个地进行,只需像这样构建查询。

从 id >= 57166 的用户中删除;

如果那需要是实际参数,请使用 mysql2 驱动程序中描述的准备语句:https://github.com/sidorares/node-mysql2

您的查询将类似于:

从 id >=?; 的用户中删除;

然后您将最小 ID 号作为参数传递。

关于mysql - 使用 node.js 批量删除 mysql 行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24074370/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com