程序员

[mysql] mysql 查询性能问题

2019-12-19  本文已影响0人  Wayne维基

问题描述

查询一组数据,耗时大约10s,客户希望的是300ms,整体差距还是很大,想看下能否优化到用户想要的性能。

select sid, attr from hide_trace_sig where segment like "1c6b%";

提前说下结论,当前的需求下,无法300ms,但是问题查询过程还是值得记录。

问题定位

explain

explain select sid, attr from hide_trace_sig where segment like "1c6b%";



结果完全命中索引,所以索引没有问题

profile

SET profiling = 1;
select sid, attr from hide_trace_sig where segment like "1c6b%";
show PROFILES;

查看对应的查询语句ID,比如4这个


image.png
SHOW PROFILE ALL FOR QUERY 4;
image.png

得到结论是sending-data耗时,是因为查询和搜索耗时

网上搜索该问题,类似的有
https://www.cnblogs.com/yaoxing92/p/11058420.html

这类问题的常用优化方式:增加buffer-size
https://www.cnblogs.com/wanbin/p/9530833.html

因为用户需要用like的方式查询,所以这个功能前提下,无法优化

索引优化

上一篇 下一篇

猜你喜欢

热点阅读