您现在的位置是:首页 > PHP框架交流PHP框架交流
sql优化 GROUP BY多字段分组 分页查询速度慢
上善若水2021-01-12 15:07:48【PHP框架交流】
6571人已围观
简介项目中遇到一个网页十分的卡慢,逐条排查,将sql放进去执行,执行时间居然高达19秒,怪不得慢,于是请教大佬,最后sql控制在1到两秒之间,现在想想,不同的写法,sql的执行效率真是天差地别呀!首先我们
项目中遇到一个网页十分的卡慢,逐条排查,将sql放进去执行,执行时间居然高达19秒,怪不得慢,于是请教大佬,最后sql控制在1到两秒之间,现在想想,不同的写法,sql的执行效率真是天差地别呀!
首先我们来看看原sql
SELECT * FROM `publish_task_walmart_new` group by parent_sku,account_id order by id desc limit 0,50
再看看优化后的sql
SELECT * from publish_task_walmart_new where id in( select t.id FROM(select id FROM publish_task_walmart_new GROUP BY parent_sku,account_id order by id desc limit 0,50) as t)
或者子查询
SELECT * from publish_task_walmart_new where id in( select t.id FROM(select id FROM publish_task_walmart_new GROUP BY parent_sku,account_id order by id desc limit 0,50) as t)
首先查询慢第一想到的有没有建立索引..
我看了下发现parent_sku
和account_id
都有建立索引,EXPLAIN
分析居然没有走索引
突然想到联合索引
于是建了这个联合索引.
再去查询时间缩短到了10秒,效率提升了一半,然而还是太慢.
于是请教了大佬,就有了上面的结论!
数据库一共就80W条记录,也不多,看来还是得看看高性能mysql呀!
Tags: sql
很赞哦! (28)
相关文章
随机图文
php获取当前目录名 获取文件所在文件夹名 非全路径名
php获取当前文件所里目录名,获取文件所在文件夹名,仅仅获取父级目录名,非全路径名,使用php自带文件函数获取当前文件名.必如我们有一个文件H:\图片\[黑川鹤子]兔女郎\1.jpg,我们要获取[黑川ThinkPHP6关闭打印sql日志输出 关闭调试模式日志输出
ThinkPHP6关闭日志输出,关闭调试模式日志输出,当需要大量写入数据是,数据库日志就十分的占用磁盘。如果长时间不处理,磁盘分分钟给塞满。 1.关闭.env文件调试APP_DEBUG=falsefatal: could not read Username for 'https://gitee.com': No such device or address
在测试git拉取代码时fatal:couldnotreadUsernamefor‘https://gitee.com‘:Nosuchdeviceoraddress,采用jenkijs中使用 encodeURI "#"井号出错 #号后参数被截取
js中使用 encodeURI将请求参数转码试,,#井号出错,#后的字符串不能正常进行转码,后台无法正确处理参数 解决方法:将encodeURI 替换成encodeURIComponent函数即可.