设为首页 收藏本站
查看: 539|回复: 0

[经验分享] mysql 学习1

[复制链接]

尚未签到

发表于 2016-9-12 06:02:34 | 显示全部楼层 |阅读模式
  文章来自:
  http://blog.csdn.net/hzy38324/article/category/3068221
  
  show variables like 'long_query_time'   查询 慢查询 的时间
  set global long_query_time=10000;    更改 慢查询 的时间
  
  show variables like 'slow%';         查询 慢查询的日志记录情况
  set global slow_query_log=ON;        开启 慢查询的日志记录
  日志在mysql安装目录的data下 计算机名+“-slow”
  
  
  Explain的作用是生成一个QEP(查询执行计划),可以帮助我们在不真正执行某个sql语句时,就看到mysql怎样执行,这样方便我们去分析sql指令的好坏。
  
  执行如下语句
  
  
  
[plain] view plaincopy



  • Explain select * from emp where empno = 3333\G  

  
DSC0000.jpg
  
  
  
  
  
  对于返回的信息,我们主要关心一下几个
  
  1)    Type
  
  ALL全表扫描,通常是不好的,其他的如index、range、const、ref、system则是较好的
  
  2)    Possible_keys
  
  可能被用到的索引
  
  3)    Key
  
  查询过程中实际使用的索引,当为null时表示没有使用索引,通常是不好的
  
  4)    key_len
  
  索引字段最大可能使用的长度,也叫索引基数。索引基数越大,表明可能查找的行数越多,查询效率越慢。
  
  5)    Rows
  
  MySQL 估计的需要扫描的行数。只是一个估计。越多表明查找的行数越多,自然越慢。
  
  6)    Extra
  
  显示上述信息之外的其它信息,非常重要。其主要有一下返回结果。
  
  Usingindex
  
  表明此查询使用了覆盖索引(CoveringIndex),即通过索引就能返回结果,无需访问表。(覆盖索引是一种非常优秀的索引,其使用见http://blog.csdn.net/hzy38324/article/details/44857721)
  
  若没显示"Usingindex"表示读取了表数据。
  
  Usingindex condition
  
  可能会使用索引
  
  Usingwhere
  
  表示 MySQL 服务器先读取整行数据,再检查此行是否符合 where 句的条件,符合就留下,不符合便丢弃。效率较慢。
  
  Usingfilesort
  
  表示Mysql会按查询所需的顺序对结果进行排序,这时就会出现 Usingfilesort 。排序自然会增加查询时间,导致效率变慢。解决方法是利用索引进行排序。若查询所需的排序与使用的索引的排序一致,因为索引是已排序的,因此按索引的顺序读取结果返回,此时就不会出现Using filesort。
  
  关于“Using index” 和 “Using index condition”的区别,笔者参考了一下stackoverflow上的一篇文章
  
  http://stackoverflow.com/questions/1687548/mysql-explain-using-index-vs-using-index-condition
  
  里面是这么解释的
  
  简单的说
  
  Using index就是一定使用索引,这种索引成为覆盖索引,Using index condition则是在必要的时候才使用索引
  
  怎样才能让Usingindex condition变成Using index,答案自然是创建一个覆盖索引,同样,笔者将会在之后章节介绍覆盖索引如何创建。
  
  
  
  
  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.iyunv.com/thread-270857-1-1.html 上篇帖子: MySQL checksum了解 下篇帖子: 安装Mysql on SunSolaris(pkg二进制文件安装)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表