如何查看MySql的sql语句性能
Explain语法:explain select … from … [where ...]
例如:explain select * from news;
输出:
+----+-------------+-------+-------+-------------------+---------+---------+-------+------+-------+
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
+----+-------------+-------+-------+-------------------+---------+---------+-------+------+-------+
下⾯对各个属性进⾏了解:
查看mysql索引1、id:这是SELECT的查询序列号
2、select_type:select_type就是select的类型,可以有以下⼏种:
SIMPLE:简单SELECT(不使⽤UNION或⼦查询等)
PRIMARY:最外⾯的SELECT
UNION:UNION中的第⼆个或后⾯的SELECT语句
DEPENDENT UNION:UNION中的第⼆个或后⾯的SELECT语句,取决于外⾯的查询
UNION RESULT:UNION的结果。
SUBQUERY:⼦查询中的第⼀个SELECT
DEPENDENT SUBQUERY:⼦查询中的第⼀个SELECT,取决于外⾯的查询
DERIVED:导出表的SELECT(FROM⼦句的⼦查询)
3、table:显⽰这⼀⾏的数据是关于哪张表的
4、type:这列最重要,显⽰了连接使⽤了哪种类别,有⽆使⽤索引,是使⽤Explain命令分析性能瓶颈的关键项之⼀。
结果值从好到坏依次是:
system > const > eq_ref > ref > fulltext > ref_or_null > index_merge > unique_subquery > index_subquery > range > index > ALL
⼀般来说,得保证查询⾄少达到range级别,最好能达到ref,否则就可能会出现性能问题。
5、possible_keys:列指出MySQL能使⽤哪个索引在该表中到⾏
6、key:显⽰MySQL实际决定使⽤的键(索引)。如果没有选择索引,键是NULL
7、key_len:显⽰MySQL决定使⽤的键长度。如果键是NULL,则长度为NULL。使⽤的索引的长度。在不损失精确性的情况下,长度越短越好
8、ref:显⽰使⽤哪个列或常数与key⼀起从表中选择⾏。
9、rows:显⽰MySQL认为它执⾏查询时必须检查的⾏数。
10、Extra:包含MySQL解决查询的详细信息,也是关键参考项之⼀。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论