忘记密码   免费注册 查看新帖 | 论坛精华区

ChinaUnix.net

  平台 论坛 博客 认证专区 大话IT 视频 徽章 文库 沙龙 自测 下载 频道自动化运维 虚拟化 储存备份 C/C++ PHP MySQL 嵌入式 Linux系统
最近访问板块 发新帖
查看: 2242 | 回复: 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
发表于 2016-12-26 11:13 |显示全部楼层
MySQL开启了慢查询,有很多慢SQL ,我自己根据之前的经历猜测应该是缺少索引,可是怎样从慢SQL里面分析缺失的索引呢,或者说有没有办法直接查询出MySQL缺失的索引,因为阿里云的RDS就可以做到自动检测出缺失索引, 求助,求推荐文章
slowquery.rar (84.5 KB, 下载次数: 3)

论坛徽章:
89
CU大牛徽章
日期:2013-11-29 22:26:36CU大牛徽章
日期:2014-02-21 14:21:56CU十二周年纪念徽章
日期:2014-02-21 14:22:02CU大牛徽章
日期:2014-02-21 14:22:07CU大牛徽章
日期:2014-02-21 14:22:09CU大牛徽章
日期:2015-02-28 17:45:342015元宵节徽章
日期:2015-03-06 16:56:38羊年新春福章
日期:2015-02-28 17:42:522015七夕节徽章
日期:2015-09-14 09:24:55CU大牛徽章
日期:2014-02-21 14:22:44CU大牛徽章
日期:2015-02-28 17:48:12CU大牛徽章
日期:2015-02-28 17:47:58
发表于 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语句包含敏感信息,建议删除掉这些内容再上传附件。




论坛徽章:
89
CU大牛徽章
日期:2013-11-29 22:26:36CU大牛徽章
日期:2014-02-21 14:21:56CU十二周年纪念徽章
日期:2014-02-21 14:22:02CU大牛徽章
日期:2014-02-21 14:22:07CU大牛徽章
日期:2014-02-21 14:22:09CU大牛徽章
日期:2015-02-28 17:45:342015元宵节徽章
日期:2015-03-06 16:56:38羊年新春福章
日期:2015-02-28 17:42:522015七夕节徽章
日期:2015-09-14 09:24:55CU大牛徽章
日期:2014-02-21 14:22:44CU大牛徽章
日期:2015-02-28 17:48:12CU大牛徽章
日期:2015-02-28 17:47:58
发表于 2016-12-26 18:03 |显示全部楼层
另外 id 字段一般不会是字符串吧?正常都会是个整型数字的:
  1. SELECT * FROM `bcm789`.`ecs_users` WHERE user_id = '6515';
复制代码

论坛徽章:
0
发表于 2016-12-29 00:35 |显示全部楼层
结构信息,索引信息,这些基础的东西得贴出来

论坛徽章:
209
2022北京冬奥会纪念版徽章
日期:2015-08-10 16:30:322015亚冠之全北现代
日期:2016-05-11 17:05:27操作系统版块每日发帖之星
日期:2016-05-10 19:23:04操作系统版块每日发帖之星
日期:2016-05-10 19:23:04操作系统版块每日发帖之星
日期:2016-05-10 19:23:04操作系统版块每日发帖之星
日期:2016-05-10 19:23:04操作系统版块每日发帖之星
日期:2016-05-10 19:22:58数据库技术版块每日发帖之星
日期:2016-05-10 19:23:04数据库技术版块每日发帖之星
日期:2016-05-10 19:23:04操作系统版块每日发帖之星
日期:2016-05-10 19:22:58操作系统版块每日发帖之星
日期:2016-05-10 19:22:58操作系统版块每日发帖之星
日期:2016-05-10 19:22:58
发表于 2016-12-29 17:40 |显示全部楼层
哇塞,老司机太多了



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

本版积分规则

SACC2017购票6.8折优惠进行时

2017中国系统架构师大会(SACC2017)将于10月19-21日在北京新云南皇冠假日酒店震撼来袭。今年,大会以“云智未来”为主题,云集国内外顶级专家,围绕云计算、人工智能、大数据、移动互联网、产业应用等热点领域展开技术探讨与交流。本届大会共设置2大主会场,18个技术专场;邀请来自互联网、金融、制造业、电商等多个领域,100余位技术专家及行业领袖来分享他们的经验;并将吸引4000+人次的系统运维、架构师及IT决策人士参会,为他们提供最具价值的交流平台。
----------------------------------------
优惠时间:2017年8月2日前

活动链接>>
  

北京皓辰网域网络信息技术有限公司. 版权所有 京ICP证:060528号 北京市公安局海淀分局网监中心备案编号:1101082001
广播电视节目制作经营许可证(京) 字第1234号 中国互联网协会会员  联系我们:
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP