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。因为whereinner join 查询要快。

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

【讨论】:

【参考方案2】:

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

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

【讨论】:

【参考方案3】:

为什么要加入分类表呢?分类表既不在where子句中,也不在select列子句中,为什么要在查询中加入呢?

哎呀,使用了 *,所以它在类别表中“是”

道歉

【讨论】:

以上是关于mysql查询执行时间太慢的主要内容,如果未能解决你的问题,请参考以下文章

如果mysql里面的数据过多,查询太慢怎么办?

MySQL UNION ALL 太慢了

QT中query.next()执行速度太慢,怎么办,当使用while(query.next())的时候,速度特别慢,怎么解决?

插入select查询的MySql太慢,无法复制1亿行

Mysql 查询速度慢怎么办

mysql查询优化之一: