免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3869 | 回复: 4
打印 上一主题 下一主题

MySQL开启了慢查询,有很多慢SQL [复制链接]

论坛徽章:
14
处女座
日期:2013-11-26 09:21:15操作系统版块每日发帖之星
日期:2016-03-25 06:20:00操作系统版块每日发帖之星
日期:2016-03-22 06:20:00操作系统版块每日发帖之星
日期:2016-03-21 06:20:00数据库技术版块每日发帖之星
日期:2015-11-13 06:20:00操作系统版块每日发帖之星
日期:2015-11-01 06:20:002015亚冠之卡尔希纳萨夫
日期:2015-09-29 13:31:42IT运维版块每日发帖之星
日期:2015-08-13 06:20:00IT运维版块每日发帖之星
日期:2015-08-10 06:20:00数据库技术版块每日发帖之星
日期:2015-08-06 06:20:00双鱼座
日期:2014-07-17 15:08:51卯兔
日期:2014-04-08 09:54:34
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2016-12-26 11:13 |只看该作者 |倒序浏览
MySQL开启了慢查询,有很多慢SQL ,我自己根据之前的经历猜测应该是缺少索引,可是怎样从慢SQL里面分析缺失的索引呢,或者说有没有办法直接查询出MySQL缺失的索引,因为阿里云的RDS就可以做到自动检测出缺失索引, 求助,求推荐文章
slowquery.rar (84.5 KB, 下载次数: 41)
附件是慢查询出来的SQL

论坛徽章:
93
2015年辞旧岁徽章
日期:2019-10-10 10:51:15CU大牛徽章
日期:2014-02-21 14:21:56CU十二周年纪念徽章
日期:2020-10-15 16:55:55CU大牛徽章
日期:2014-02-21 14:22:07羊年新春福章
日期:2019-10-10 10:51:39CU大牛徽章
日期:2019-10-10 10:55:38季节之章:春
日期:2020-10-15 16:57:40ChinaUnix元老
日期:2019-10-10 10:54:42季节之章:冬
日期:2019-10-10 10:57:17CU大牛徽章
日期:2014-02-21 14:22:52CU大牛徽章
日期:2014-03-13 10:40:30CU大牛徽章
日期:2014-02-21 14:23:15
2 [报告]
发表于 2016-12-26 18:01 |只看该作者
回复 1# royzs

这些简单查询都能查20多秒?即使是 id 字段不是主键不是索引也不大应该的样子,是不是服务器性能本身也不大好?
  1. # User@Host: bcm789[bcm789] @ localhost [127.0.0.1]
  2. # Query_time: 23.927186  Lock_time: 22.876502 Rows_sent: 10  Rows_examined: 10
  3. SET timestamp=1482589114;
  4. select user_id from `bcm789`.`ecs_users` where parent_id = '38663';
  5. # User@Host: bcm789[bcm789] @ localhost [127.0.0.1]
  6. # Query_time: 23.907202  Lock_time: 22.856533 Rows_sent: 1  Rows_examined: 1
  7. SET timestamp=1482589114;
  8. SELECT * FROM `bcm789`.`ecs_users` WHERE user_id = '6515';
  9. # User@Host: bcm789[bcm789] @ localhost [127.0.0.1]
  10. # Query_time: 23.908687  Lock_time: 22.857006 Rows_sent: 1  Rows_examined: 1
  11. SET timestamp=1482589114;
  12. SELECT * FROM `bcm789`.`ecs_users` WHERE user_id = '21541';
  13. # User@Host: bcm789[bcm789] @ localhost [127.0.0.1]
  14. # Query_time: 23.918694  Lock_time: 22.866703 Rows_sent: 1  Rows_examined: 1
  15. SET timestamp=1482589114;
  16. SELECT * FROM `bcm789`.`ecs_users` WHERE user_id = '68461';
复制代码
如果上述所说 id 不是索引自然这个连接操作也快不到哪去,而 or 条件里两个字段如果有一个不是索引也会影响速度,对于前面的 state 条件,想必重复数据很多,即使做索引也没多大效果:
  1. select dr.*,u.user_name,u.real_name from `bcm789`.`ecs_double_rate` as dr left join `bcm789`.`ecs_users` as u on dr.user_id = u.user_id  where dr.state='0' and (u.declaration_center=8661 or dr.user_id=8661)  order by dr.dr_id desc limit 0,10;
复制代码

像这些前后都有 % 号的 like 查询每一本SQL书籍都会说到不要这样用的啦:
  1. SELECT COUNT(*) FROM `bcm789`.`ecs_users` WHERE 1  AND user_name LIKE '%k526010%' or email like  '%k526010%' or mobile_phone like  '%k526010%';

  2. SELECT user_id, user_name,real_name, email, mobile_phone,parent_sn, is_validated, validated, user_money,  frozen_money, rank_points, pay_points, status,user_type, reg_time, froms,is_special,special_start_time,special_end_time  FROM `bcm789`.`ecs_users` WHERE 1  AND user_name LIKE '%k526010%' or email like  '%k526010%' or mobile_phone like  '%k526010%'  ORDER by user_id DESC LIMIT 0,15;
复制代码

另外提醒楼主文件中有一些insert语句包含敏感信息,建议删除掉这些内容再上传附件。




论坛徽章:
93
2015年辞旧岁徽章
日期:2019-10-10 10:51:15CU大牛徽章
日期:2014-02-21 14:21:56CU十二周年纪念徽章
日期:2020-10-15 16:55:55CU大牛徽章
日期:2014-02-21 14:22:07羊年新春福章
日期:2019-10-10 10:51:39CU大牛徽章
日期:2019-10-10 10:55:38季节之章:春
日期:2020-10-15 16:57:40ChinaUnix元老
日期:2019-10-10 10:54:42季节之章:冬
日期:2019-10-10 10:57:17CU大牛徽章
日期:2014-02-21 14:22:52CU大牛徽章
日期:2014-03-13 10:40:30CU大牛徽章
日期:2014-02-21 14:23:15
3 [报告]
发表于 2016-12-26 18:03 |只看该作者
另外 id 字段一般不会是字符串吧?正常都会是个整型数字的:
  1. SELECT * FROM `bcm789`.`ecs_users` WHERE user_id = '6515';
复制代码

论坛徽章:
0
4 [报告]
发表于 2016-12-29 00:35 |只看该作者
结构信息,索引信息,这些基础的东西得贴出来

论坛徽章:
223
2022北京冬奥会纪念版徽章
日期:2015-08-10 16:30:32操作系统版块每日发帖之星
日期:2016-05-10 19:22:58操作系统版块每日发帖之星
日期:2016-02-18 06:20:00操作系统版块每日发帖之星
日期:2016-03-01 06:20:00操作系统版块每日发帖之星
日期:2016-03-02 06:20:0015-16赛季CBA联赛之上海
日期:2019-09-20 12:29:3219周年集字徽章-周
日期:2019-10-01 20:47:4815-16赛季CBA联赛之八一
日期:2020-10-23 18:30:5320周年集字徽章-20	
日期:2020-10-28 14:14:2615-16赛季CBA联赛之广夏
日期:2023-02-25 16:26:26CU十四周年纪念徽章
日期:2023-04-13 12:23:10操作系统版块每日发帖之星
日期:2016-05-10 19:22:58
5 [报告]
发表于 2016-12-29 17:40 |只看该作者
哇塞,老司机太多了



mysql貌似处理字符串,性能也没那么差劲吧。。。虽然确实比整数2差了点
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP