Explain SQL语句性能测试返回值的具体含义:
mysql> explain SELECT `content_id` , `content_old_id`, `content_hasimg` ,`content_time_update`, `content_title_long`, `vhost_content`.`site_id`, `site_domain`, `site_name`, `site_state` FROM `vhost_content` LEFT JOIN `vhost_site` ON `vhost_content`.`site_id` = `vhost_site`.`site_id` WHERE `content_effect` = 1 AND `content_audit` = 1 AND `content_publish` = 1 AND `content_time_update` >= '2012-12-16' AND `vhost_content`.`site_id` LIKE '001001001%' AND 1=1 ORDER BY `content_time_update` desc LIMIT 0 , 25;
+----+-------------+---------------+-------+--------------------------------------------------------------------------+------------------+---------+-------------------------------+------+-----------------------------+
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
+----+-------------+---------------+-------+--------------------------------------------------------------------------+------------------+---------+-------------------------------+------+-----------------------------+
| 1 | SIMPLE | vhost_content | range | idx_content_site,Refvhost_site483,idx_content_uptime,idx_content_publish | idx_content_site | 55 | NULL | 198 | Using where; Using filesort |
| 1 | SIMPLE | vhost_site | ref | PRIMARY | PRIMARY | 54 | vhostdb.vhost_content.site_id | 1 | |
+----+-------------+---------------+-------+--------------------------------------------------------------------------+------------------+---------+-------------------------------+------+-----------------------------+
Table:
显示该语句涉及数据库表
Type:
这列很重要,
显示了该连接使用了哪种类别,
有无使用索引,反应语句的质量 。结果值从好到坏依次是 :
system > const > eq_ref > ref > fulltext > ref_or_null >
index_merge > unique_subquery > index_subquery > range > index >
ALL ,
一般来说,得保证查询至少达到range级别,
最好能到达ref级别,
否则就可能出现性能问题。
Possible_key : 指出mysql能使用哪个索引在该表中找到行
Key: 显示mysql实际使用的键(索引), 如果没有选择索引, 键是null。
Key_len : 显示mysql决定使用的键长度。 如果是null, 则长度为null,在不损失精确性的情况下, 长度越短越好。
Ref: 显示使用哪个列或常数与key一起从表中选择行。
Rows: 显示mysql认为它执行查询时必须检查的行数。
Extra : 包含mysql解决查询的详细信息。
分享到:
相关推荐
mysql的explain分析sql语句性能(慢查询和加没加索引)
LNH_MySQL 22-利用explain查看sql语句的执行计划.mp4
EXPLAIN关键字一般放在SELECT查询语句的前面,用于描述MySQL如何执行查询操作、以及MySQL成功返回结果集需要执行的行数。explain 可以帮助我们分析 select 语句,让我们知道查询效率低下的原因,从而改进我们查询,让...
mysql explain可以帮助你检查索引和更好的优化查询语句,今天特地学习了下mysql explain的用法,需要的朋友可以参考下
Explain命令在解决数据库性能上是第一推荐使用命令,大部分的性能问题可以通过此命令来简单的解决,Explain可以用来查看SQL语句的执行效 果,可以帮助选择更好的索引和优化查询语句,写出更好的优化语句。
但对MySQL复杂查询语句执行过程和内部机制,MySQL Optimizer本身所做优化以及查询语句调整对性能所产生的影响及其原因知之甚少。 本文试图对其中的一些关键概念如执行过程、索引使用等做比较深入的探讨,知其然,知...
而我们在不考虑进行分库分表的操作时,进行SQL语句优化是一个很好的解决办法,下面介绍explain关键词分析SQL语句,及使用索引进行优化查询。 explain关键字使用 explain使用格式 EXPLAIN SELECT * FROM SCORE ...
使用EXPLAIN关键字可以模拟优化器执行SQL查询语句,从而知道MySQL是如何处理你的SQL语句的。分析你的查询语句或是表结构的性能瓶颈。 如下面SQL语句: EXPLAIN select * from system_area where status = 1 获得...
mysql分享-explain讲解,重点让用户看懂explain如何分析mysql的慢查询语句
EXPLAIN关键字一般放在SELECT查询语句的前面,用于描述MySQL如何执行查询操作、以及MySQL成功返回结果集需要执行的行数。explain 可以帮助我们分析 select 语句,让我们知道查询效率低下的原因,从而改进我们查询,让...
当我们去设计数据库表结构,对操作数据库时(尤其是查表时的SQL语句),我们都需要注意数据操作的性能。 1、开启慢查询 1> 查看慢查询是否开启 show variables like "%quer%"; slow_query_log = ON #已开启 2> ...
在MySQL查询语句过程和EXPLAIN语句基本概念及其优化中介绍了EXPLAIN语句,并举了一个慢查询例子: 可以看到上述的查询需要检查1万多记录,并且使用了临时表和filesort排序,这样的查询在用户数快速增长后将成为噩梦...
首先,介绍了使用EXPLAIN命令分析查询执行计划的重要性,以便识别潜在的性能瓶颈。接着,详细阐述了索引优化技巧,包括创建合适的索引、避免冗余索引和使用复合索引。文章还探讨了优化查询语句的方法,如避免在列上...
Explain 用来分析 SELECT 查询语句,开发人员可以通过分析 Explain 结果来优化查询语句。 通过对查询语句的分析,可以了解查询语句的执行情况,找出查询语句执行的瓶颈,从而优化查询语句. 使用索引查询 MySql中提高...
如果在select语句前放上关键词explain,mysql将解释它如何处理select,提供有关表如何联接和联接的次序。explain的每个输出行提供一个表的相关信息,并且每个行包括下面的列:1,id select识别符。这是select的查询...
explain显示了mysql如何使用索引来处理select语句以及连接表。可以帮助选择更好的索引和写出更优化的查询语句。 使用方法,在select语句前加上explain就可以了: 如: mysql> explain select * from kt_course ...
很多情况下,有很多人用各种select语句查询到了他们想要的数据后,往往便以为工作圆满结束了。 这些事情往往发生在一些学生亦或刚入职场但之前又没有很好数据库基础的小白身上,但所谓闻道有先后,只要我们小白好好...