【发布时间】:2013-05-15 00:41:07
【问题描述】:
我有一个这样的查询需要很长时间才能运行。该表大约有 400 万行。
DELETE FROM TABLE WHERE value_was IS NULL OR value_was <= value_now;
我希望我可以为 (value_was, value_now) 创建一个索引,这样我就可以做类似的事情
DELETE FROM TABLE WHERE
ID1 IN (SELECT ID1 from TABLE where value_was IS NULL)
OR ID2 IN (SELECT ID2 FROM TABLE WHERE value_was <= value_now);
此表没有主键。它有两个复合键。而且我想我不能在子查询中使用同一张表,但是如何提高第一个查询的性能?
非常感谢任何建议将不胜感激。
更新: 数据库是 innoDB
【问题讨论】:
-
表是存储在
myISAM还是innoDB存储引擎中? -
这是innoDB。我也更新了问题。
标签: mysql database performance