explain显示了MySQL如何使用索引来处理select语句以及连接表.可以帮助选择更好的索引和写出更优化的查询语句. explain的使用方法很简单,只需要在select查询语句前面加上explain关键字就行.下面给出一个实例: 下面给出回显的数据的含义: (1)id:SELECT识别符,这是SELECT查询序列号. (2)select_type:select类型,它有以下几种值 1)simple 它表示简单的select,没有union和子查询 2)primary 最外面的select…
Query Profiler是MYSQL自带的一种query诊断分析工具,通过它可以分析出一条SQL语句的性能瓶颈在什么地方.通常我们是使用的explain,以及slow query log都无法做到精确分析,但是Query Profiler却可以定位出一条SQL语句执行的各种资源消耗情况,比如CPU,IO等,以及该SQL执行所耗费的时间等.不过该工具只有在MYSQL 5.0.37以及以上版本中才有实现. 默认的情况下,MYSQL的该功能没有打开,需要自己手动启动.可以通过如下方法查看当前mys…
explain关键字结果 列名所代表的的含义: Id:MySQL QueryOptimizer 选定的执行计划中查询的序列号.表示查询中执行 select 子句或操作表的顺序,id 值越大优先级越高,越先被执行.id 相同,执行顺序由上至下. Select_type一共有9中类型,只介绍常用的4种: SIMPLE: 简单的 select 查询,不使用 union 及子查询 PRIMARY: 最外层的 select 查询 UNION: UNION 中的第二个或随后的 select 查询,不 依赖于…
分析SQL执行带来的开销是优化SQL的重要手段. 在MySQL数据库中,可以通过配置profiling参数来启用SQL剖析.该参数可以在全局和session级别来设置.对于全局级别则作用于整个MySQL实例,而session级别紧影响当前session. 该参数开启后,后续执行的SQL语句都将记录其资源开销,诸如IO,上下文切换,CPU,Memory等等.根据这些开销进一步分析当前SQL瓶颈从而进行优化与调整. [时间单位为 s] .有关profile的解释 --当前版本 mysql> show…
一.如何操作 explain + 增删改查语句; 二. 输出格式 possible_keys  mysql在搜索表记录时可能使用哪个索引. key  实际使用的索引,如果没有索引被使用,则为null. rows 字段显示了mysql认为在查询中应该检索的记录数,值越小越好. key_len 实际使用的索引长度.注意,key_len的值可以告诉你在联合索引中mysql会真正使用了哪些索引.…
为什么要做性能分析 你有没有这样的情况. 面对一个你没怎么写过的.复杂的业务,你构思了很久,终于开始敲下了第一段代码. 写的过程迷迷糊糊,有的时候还能把自己搞晕了. 但你还是终于把它写完了. 但是点击一运行,完了,有bug. 怎么办? debug的方式有很多,控制台打印是一种. 通过控制台打印的信息,我们能根据反馈去修改代码,直到代码能正常运行为止. 其实建索引也是一样的. 上篇帖子<浅谈sql索引>,说过索引的难点在于针对一个具体的表去做出最合适的索引. 因为这不只要看你表里有什么内容,更多…
可以使用explain来分析MySQL查询性能,举例如下: 1.使用explain语句去查看分析结果 如 explain select * from test1 where id=1; 会出现: id  selecttype  table  type possible_keys  key key_len  ref rows  extra各列. 其中: type=const表示通过索引一次就找到了: key=primary的话,表示使用了主键: type=all,表示为全表扫描: key=null…
MySQL性能分析及explain用法的知识 1.使用explain语句去查看分析结果 如explain select * from test1 where id=1;会出现:id  selecttype  table  type possible_keys  key key_len  ref rows  extra各列. 其中, type=const表示通过索引一次就找到了: key=primary的话,表示使用了主键: type=all,表示为全表扫描: key=null表示没用到索引.ty…
1.使用explain语句去查看分析结果 如explain select * from test1 where id=1;会出现:id selecttype table type possible_keys key key_len ref rows extra各列. 其中, type=const表示通过索引一次就找到了: key=primary的话,表示使用了主键: type=all,表示为全表扫描: key=null表示没用到索引.type=ref,因为这时认为是多个匹配行,在联合查询中,一般…
https://blog.csdn.net/leamonjxl/article/details/6431444 MySQL越来越被更多企业接受,随着企业发展,MySQL存储数据日益膨胀,MySQL的性能分析.监控预警.容量扩展议题越来越多.“工欲善其事,必先利其器”,那么我们如何在进行MySQL性能分析.监控预警.容量扩展问题上得到更好的解决方案,就要利用各种工具来对MySQL各种指标进行分析.本文是读书笔记,下面提及的工具,读者可能都用过,或打算准备是使用.MySQL服务器的发布包没有包含那些…