这是一个查询其需要1到2秒执行(MySQL查询)多表连接 - 删除查询 - 最佳的方式
DELETE t1 FROM table1 t1, table2 t2, table3 t3, table4 t4
WHERE (t1.column1 = t2.column1 OR t1.colum2 = t2.column1)
AND t2.column1 = t3.column1
AND t3.column2 = t4.column1
AND t4.column2=100;
我期待在几年的毫秒的执行时间。有没有实现这个最佳方式?
索引已经添加,可能是我应该重新加入联接的方式。 – Sharpeye500 2010-11-05 17:27:07
索引在选择查询中起着重要作用,更多索引会减慢任何更新/删除查询。 – Sharpeye500 2010-11-05 17:27:45
如果索引显着减少必须考虑的记录数量,那么它将彻底改善甚至删除。尝试在选择想要删除的结果的等效查询上执行EXPLAIN,然后也许可以优化索引。如果您正在使用InnoDB或MyISAM,如果它正在快速查询结果,但需要很长时间才能删除,那么切换到MyISAM将改进删除操作,但还有其他缺点。 – 3urdoch 2010-11-05 19:29:15