mysql查询超慢,该怎么解决
程序员文章站
2022-05-07 23:09:40
...
mysql查询超慢
SELECT a.`order_id` , a.`delivery_date` , a.`buyer_name` , a.`order_status` , a.`account` , a.`delivery_warehouse`
FROM `Sale_Order` a
LEFT JOIN `Sale_Order_de` b ON a.`order_id` = b.`order_id`
GROUP BY a.`order_id`
ORDER BY find_in_set( a.`order_status` , '4,1,5,6,2,0,7' )
以上查询很慢,需要3-5秒,为什么用left join因为我还要有筛选条件的,现在不加条件都超慢
explain结果:
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE a ALL NULL NULL NULL NULL 38472 Using temporary; Using filesort
1 SIMPLE b ref OrderId,order_id,order_id_2,order_id_3,order_id_4,order_id_5,order_id_6 OrderId 152 demo.a.order_id 1 Using index
两个表各自才3万多记录,怎么会这么慢呢?是不是a表没用到索引??但我每个字段都点了索引的
------解决思路----------------------
遇见你这样的情况时,我平时都是这样做的:
1、先把left join及后面的注释掉,然后加上a表相关的where(你不加条件字段索引肯定不生效)
2、然后看执行情况,依次打开注释部分,再看执行情况,那块拖了后腿,我就找那块儿麻烦
还有就是不用每个字段都加索引;
selct_type 是 ALL是因为你没有加条件扫的全表;
------解决思路----------------------
ORDER BY find_in_set( a.`order_status` , '4,1,5,6,2,0,7' ) 是严重影响性能之一
SELECT a.`order_id` , a.`delivery_date` , a.`buyer_name` , a.`order_status` , a.`account` , a.`delivery_warehouse`
FROM `Sale_Order` a
LEFT JOIN `Sale_Order_de` b ON a.`order_id` = b.`order_id`
GROUP BY a.`order_id`
ORDER BY find_in_set( a.`order_status` , '4,1,5,6,2,0,7' )
以上查询很慢,需要3-5秒,为什么用left join因为我还要有筛选条件的,现在不加条件都超慢
explain结果:
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE a ALL NULL NULL NULL NULL 38472 Using temporary; Using filesort
1 SIMPLE b ref OrderId,order_id,order_id_2,order_id_3,order_id_4,order_id_5,order_id_6 OrderId 152 demo.a.order_id 1 Using index
两个表各自才3万多记录,怎么会这么慢呢?是不是a表没用到索引??但我每个字段都点了索引的
------解决思路----------------------
遇见你这样的情况时,我平时都是这样做的:
1、先把left join及后面的注释掉,然后加上a表相关的where(你不加条件字段索引肯定不生效)
2、然后看执行情况,依次打开注释部分,再看执行情况,那块拖了后腿,我就找那块儿麻烦
还有就是不用每个字段都加索引;
selct_type 是 ALL是因为你没有加条件扫的全表;
------解决思路----------------------
ORDER BY find_in_set( a.`order_status` , '4,1,5,6,2,0,7' ) 是严重影响性能之一
相关文章
相关视频
上一篇: 随机数的产生_html/css_WEB-ITnose
下一篇: ps中怎么把字放大
推荐阅读
-
解决不能修改 Mysql 慢查询 long_query_time 值的问题
-
CAD打开很慢该怎么办?CAD2015启动慢的三种解决办法
-
MySQL 笔记整理(14) --count(*)这么慢,我该怎么办?
-
MySQL Threads_running飙升与慢查询的相关问题解决
-
MySQL查询优化之查询慢原因和解决技巧
-
mysql_query($sql)到底返回boolen值还是resource id?该怎么解决
-
mysql_query($sql)到底返回boolen值还是resource id?该怎么解决
-
php连mysql,并取数据。该怎么解决
-
PHP链接不上MYSQL,该怎么解决
-
如何解决PHP使用mysql_query查询超大结果集超内存问题,phpmysql_query_PHP教程