我有以下SQL查询,但查询非常慢:(页面加载2秒)。
mysql_query("select * from table_test
WHERE ((owner = '$id' AND ownersecond = '0') OR ownersecond = '$id')
AND catogory = '1' AND type = '$car[id]' AND caseB = '0'
AND (timeback < TIMESTAMP(NOW()) OR timeback = '0000-00-00 00:00:00') ");
我希望通过使用索引来改进SQL语句。我已经有了行的索引:所有者和所有者第二。将索引放在类型、caseB和tieback上有用吗?还是我会越来越慢sql?因为很多索引?
或者:将上面的SQL重写为更快的查询更好吗?有没有人有更好的书面查询的建议。提前谢谢。
发布于 2014-08-01 02:46:00
使用解释来诊断所使用的索引(如果有的话)。我建议学习如何使用解释,因为我们很难推荐额外的索引。如果我要对进行猜测,我会说您的timeback
列需要一个索引,因为时间戳列可能比owner
列更多变化。向每一列添加索引将增加插入/更新所需的时间。
https://stackoverflow.com/questions/25078300
复制