mysql查询执行时间太慢
Posted
技术标签:
【中文标题】mysql查询执行时间太慢【英文标题】:Mysql query exicution time is too slow 【发布时间】:2014-02-14 06:04:20 【问题描述】:SELECT * FROM
articles
t
左外连接category_type
category
ON (t
.category_id
=category
.id
) WHERE (t.status = 6 AND t.publish_on
执行此查询需要 1.5 秒以上。
你能给我一些想法吗?如何改进此查询和最短执行时间?
【问题讨论】:
添加索引可能会有所帮助,您可以编辑和添加表结构以及explain
输出
【参考方案1】:
第一件事 => 使用 where
而不是 inner join
。因为where
比inner join
查询要快。
第二件事 => 将indexes
用于frequently searched columns
。在您的示例中,您根据状态进行搜索,publish_on 除了 id 为primary index
。
【讨论】:
【参考方案2】:如果您使用的是 mysql,那么您可以尝试在 phpmyadmin 中提出表结构选项,它可以帮助您确定列名的有效数据类型。这可以帮助您优化查询处理。
查询处理时间取决于许多因素,例如:数据库服务器负载、表中的数据量以及用于列名的数据类型。
【讨论】:
【参考方案3】:为什么要加入分类表呢?分类表既不在where子句中,也不在select列子句中,为什么要在查询中加入呢?
哎呀,使用了 *,所以它在类别表中“是”
道歉
【讨论】:
以上是关于mysql查询执行时间太慢的主要内容,如果未能解决你的问题,请参考以下文章
QT中query.next()执行速度太慢,怎么办,当使用while(query.next())的时候,速度特别慢,怎么解决?