这是一个需要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;
我正在寻找几毫秒的执行时间。有没有最佳的实现方式?
答案 0 :(得分:0)
向表中添加索引,这将提高删除性能和查询。
答案 1 :(得分:0)
尝试将其分解为两个不同的删除查询并删除“OR”子句。像这样的OR子句通常会导致全表扫描。如有必要,使用事务来确保两个查询都执行,因为它们分为两部分。
答案 2 :(得分:0)
优化它的方法是添加索引 - 但很难从查询中判断出索引的用处。尝试使用标准的JOIN语法;这将帮助您解决ON子句和WHERE子句之间的区别,以及不同索引可能有帮助的地方。