【发布时间】:2014-01-26 12:09:13
【问题描述】:
我对数据库很草率,无法使用连接进行此操作,而且我什至不确定这会更快...
DELETE FROM atable
WHERE btable_id IN (SELECT id
FROM btable
WHERE param > 2)
AND ctable_id IN (SELECT id
FROM ctable
WHERE ( someblob LIKE '%_ID1_%'
OR someblob LIKE '%_ID2_%' ))
Atable 包含约 19M 行,这将删除约 3M 行。目前,我只能使用LIMIT 100000 运行查询,我不想整天和phpmyadmin 坐在这里,因为每次删除(100.000 行)运行大约1.5 分钟。
有什么方法可以加快/自动化它?
MySQL 5.5
(如果任何表包含 20M 行,你认为这已经是糟糕的数据库设计了吗?)
【问题讨论】:
-
行数不是衡量表格设计好坏的标准。您的表格是否标准化?这将是衡量良好表格设计的标准......
标签: mysql sql join sql-delete exists