Mysql查询执行时间太慢

时间:2014-02-14 06:04:20

标签: php mysql sql

  

SELECT * FROM articles t LEFT OUTER JOIN category_type category ON(tcategory_id = category。{ {1}})    WHERE(t.status = 6 AND t.publish_on< ='2014-02-14'和t.id NOT IN(13112,9490,9386,6045,1581,1034,991,933,879,758)和t.category_id IN(14) )按照DES.LIMIT 7的顺序排序;

执行此查询需要1.5秒以上。

你能告诉我一些意见吗?如何改进此查询并缩短执行时间?

3 个答案:

答案 0 :(得分:1)

第一件事=>使用where代替inner join。因为whereinner join查询更快。

第二件事=>将indexes用于frequently searched columns。在您的示例中,您根据状态搜索,除了id为primary index之外,发布__。

答案 1 :(得分:0)

如果您使用的是mysql,那么您可以在phpmyadmin中尝试建议表结构选项,它可以帮助您确定列名的有效数据类型。这可以帮助您优化查询处理。

查询处理时间取决于许多因素,例如:数据库服务器负载,表中的数据量以及用于列名的数据类型。

答案 2 :(得分:0)

为什么要将它与类别表连接?,类别表不在where子句中,也不在select列子句中,那么为什么要在查询中添加它呢?

使用了 oops,*,因此它在类别表中是“是”

道歉