您现在的位置是:首页 > PHP框架交流PHP框架交流
sql优化 GROUP BY多字段分组 分页查询速度慢
上善若水2021-01-12 15:07:48【PHP框架交流】 6299人已围观
简介项目中遇到一个网页十分的卡慢,逐条排查,将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)
相关文章
随机图文
-
git在centos上拉取项目需要重复输入密码 git保存账号信息
最近在码云上新建了自己的个人项目,但是每次在centos上拉取项目需要重复输入密码,十分耽误效率,git自动保存账号信息.输入 git config --global credential.helpe -
PHP8.1新特性 对字符串键控数组的数组解包支持
PHP8.1新特性 对字符串键控数组的数组解包支持,这样我们再对数组操作更加灵活方便,以前都是依赖数组函数去实现,现在写法更加便捷。官方文档https://www.php.net/manual/zh/ -
php获取当前目录名 获取文件所在文件夹名 非全路径名
php获取当前文件所里目录名,获取文件所在文件夹名,仅仅获取父级目录名,非全路径名,使用php自带文件函数获取当前文件名.必如我们有一个文件H:\图片\[黑川鹤子]兔女郎\1.jpg,我们要获取[黑川 -
ThinkPHP6.0 自动写入时间戳
系统支持自动写入创建和更新的时间戳字段(默认关闭),有两种方式配置支持。第一种方式是全局开启,在数据库配置文件中进行设置:// 开启自动写入时间戳字段'auto_timestamp&