php sql慢查询,Select多行SQL语句慢查询优化

针对MySQL5.5中InnoDB表的查询优化问题,当前SQL语句(根据id列表查询post.name)导致大量慢查询。EXPLAIN结果显示查询类型为SIMPLE,使用了主键索引,但仍有较高延迟。优化建议包括批量处理数据,减少IN子句中的ID数量,或者考虑使用临时表,同时检查服务器配置和索引效率。进一步的分析和调整可能包括调整索引策略,优化查询语句或升级数据库版本。
摘要由CSDN通过智能技术生成

环境:MySQL5.5 InnoDB表 post ,主键为 id

需求非常简单,根据id返回 post.name ,需要一次返回指定的多个,所以使用了where id in:

select `name` from `post` where `id` in(2142324,2106574,2106564,2075699,2065402,2050790,2038346,2038345,2035588,2031765,2022035,2022034,2020745,2020737,2020718,1987558,1970241,1962232,1911342,1891481,1889641,1877438,1877434,1867217,1866057,1866013,1847315);

Explain结果:

+----+-------------+-------+-------+---------------+---------+---------+------+------+-------------+

| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |

+----+-------------+-------+-------+---------------+---------+---------+------+------+-------------+

| 1 | SIMPLE | post | range | PRIMARY | PRIMARY | 4 | NULL | 27 | Using where |

+----+-------------+-------+-------+---------------+---------+---------+------+------+-------------+

现在这句SQL一小时产生几千条慢查询记录,我直接在console执行每次也需要7,8秒

能怎么优化呢?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值