知识大全 剖析单条查询(3)[1]

Posted 索引

篇首语:粉丝对我来说都是浮云,所以我很喜欢多云的天气。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 剖析单条查询(3)[1]相关的知识,希望对你有一定的参考价值。

高性能MySQL:剖析单条查询(3)[1]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

   剖析单条查询( )

  从结果可以看到该查询使用了三个临时表 其中两个是磁盘临时表 并且有很多的没有用到索引的读操作(Handler_read_rnd_next) 假设我们不知道这个视图的具体定义 仅从结果来推测 这个查询有可能是做了多表关联(join)查询 并且没有合适的索引 可能是其中一个子查询创建了临时表 然后和其他表做联合查询 而用于保存子查询结果的临时表没有索引 如此大致可以解释这样的结果

  使用这个技术的时候 要注意SHOW STATUS 本身也会创建一个临时表 而且也会通过句柄操作访问此临时表 这会影响到SHOW STATUS 结果中对应的数字 而且不同的版本可能行为也不尽相同 比较前面通过SHOW PROFILES 获得的查询的执行计划的结果来看 至少临时表的计数器多加了

  你可能会注意到通过EXPLAIN 查看查询的执行计划也可以获得大部分相同的信息 但EXPLAIN 是通过估计得到的结果 而通过计数器则是实际的测量结果 例如 EXPLAIN 无法告诉你临时表是否是磁盘表 这和内存临时表的性能差别是很大的 附录D 包含更多关于EXPLAIN 的内容

  使用慢查询日志

  那么针对上面这样的查询语句 Percona Server 对慢查询日志做了哪些改进?下面是 使用SHOW PROFILE 一节演示过的相同的查询执行后抓取到的结果

  # Time: : :

  # User@Host: root[root] @ localhost [ ]

  # Thread_id: Schema: sakila Last_errno: Killed:

  # Query_time: Lock_time: Rows_sent: Rows_examined:

  Rows_affected: Rows_read:

  # Bytes_sent: Tmp_tables: Tmp_disk_tables: Tmp_table_sizes:

  # InnoDB_trx_id: E

  # QC_Hit: No Full_scan: Yes Full_join: No Tmp_table: Yes Tmp_table_on_disk: Yes

  # Filesort: Yes Filesort_on_disk: No Merge_passes:

  # InnoDB_IO_r_ops: InnoDB_IO_r_bytes: InnoDB_IO_r_wait:

  # InnoDB_rec_lock_wait: InnoDB_queue_wait:

  # InnoDB_pages_distinct:

  # PROFILE_VALUES … Copying to tmp table: … [omitted]

  SET timestamp= ;

  SELECT * FROM sakila nicer_but_slower_film_list;

  从这里看到查询确实一共创建了三个临时表 其中两个是磁盘临时表 而SHOW PROFILE看起来则隐藏了信息(可能是由于服务器执行查询的方式有不一样的地方造成的) 这里为了方便阅读 对结果做了简化 但最后对该查询执行SHOW PROFILE 的数据也会写入到日志中 所以在Percona Server 中甚至可以记录SHOW PROFILE 的细节信息

cha138/Article/program/MySQL/201311/29706

相关参考

知识大全 剖析单条查询(1)[1]

高性能MySQL:剖析单条查询(1)[1]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  剖析单

知识大全 剖析单条查询(2)[1]

高性能MySQL:剖析单条查询(2)[1]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  剖析单

知识大全 剖析单条查询(1)[2]

高性能MySQL:剖析单条查询(1)[2]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  |ch

知识大全 剖析单条查询(2)[2]

高性能MySQL:剖析单条查询(2)[2]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  使用S

知识大全 单条查询问题还是服务器问题(1)

高性能MySQL:单条查询问题还是服务器问题(1)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 

知识大全 单条查询问题还是服务器问题(2)

高性能MySQL:单条查询问题还是服务器问题(2)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 

知识大全 剖析MySQL查询

高性能MySQL:剖析MySQL查询  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  剖析MySQ

知识大全 oracle多表查询与子查询

  (一)子查询select*fromtableA  whereidoperator(select*fromtableAawhereaid=)  operaor  单条记录子查询(

知识大全 php执行数据库查询返回json格式数据

  <?php  //需要执行的SQL语句//单条$sql="selectidnamefromtbl_userwhereid=";//多条数据//$sql="selectidnamefromtb

知识大全 全面剖析Delphi 2006新增特性3

全面剖析Delphi2006新增特性3  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  (五)数据