为什么这个MySQL select查询会减慢速度?

问题描述:

我有这个疑问:为什么这个MySQL select查询会减慢速度?

"SELECT * FROM forum_posts WHERE post_deleted='0'" 

我可以通过New Relic的看到它吃了我的MySQL的资源60%以上,因此放慢我的整个网站。

我不知道为什么这么简单的查询会减慢速度?我的表是一个InnoDB表,索引在“id”上。

+2

你还需要post_deleted上的索引 –

+0

如果'post_deleted'是一个字符串,你只能将它作为一个数字,请尝试切换数据类型。提供数据库结构也会有所帮助,因为您可能有其他优化选项。 –

+0

post_deleted \t int(1)\t \t \t NOT NULL标准值:0 – oliverbj

  • post_deleted
  • 创建索引验证post_deleted为布尔类型(TINYINT,smallint或偶数的表现将优于字符串)
  • 不要与之比较的字符串“0”,但对数0
+0

增加一个限制,会有帮助吗? – oliverbj

+0

在这种情况下,查询的性能与转换为输出的数据量无关。但是,对于任何客户端性能而言,花费在传输数据上的时间总计为总处理时间。我认为你说newrelic正在提醒你DB的表现。 – amenadiel