1.基本的分析命令
- EXPLAIN
- SHOW CREATE TABLE
- SHOW INDEXES
- SHOW TABLE STATUS
- SHOW STATUS
- SHOW VARIABLES
2.EXPLAIN
a. 要确定一条想要运行的SQL语句的QEP,EXPLAIN命令是必不可少的工具。
b. 用户可以用使用这条命令深入了结MySQL的基于开销的优化器
c. 还可以获得很多可能被优化器考虑到的访问策略的细节,以及当运行SQL语句时哪种策略预计会被优化器采用
2.1 两个例子
EXPLAIN SELECT host, user, password FROM mysql.user
WHERE user LIKE 'r%' \G
EXPLAIN SELECT host, user, password FROM mysql.user
WHERE host='localhost'
AND user LIKE 'r%' \G
没有使用索引(key列的值为null)
很多处理过的行(rows列)
很多被评估的索引(possible_keys列)
2.2 EXPLAIN PARTITIONS
该命令对用于满足在partitions列中的查询的特定表分区提供附加信息
2.3 EXPLAIN EXTENDED
该命令提供了额外的filtered列,可以用于查询优化,如显然存在的索引最后为什么没有用到
3.SHOW CREATE TABLE
该命令以一种便于阅读和操作的格式向用户呈现基本表的当前列和索引定义的全部细节。
该命令告诉用户如何用准确的愈发来重新创建数据库表,并且用户可以很容易地在给定表上针对新的/更改的索引,数据类型,是否为null限制条件,字符集以及存储引擎创建优化
4.SHOW INDEXES
该命令可以查看索引的信息,这些信息包括索引的类型和当前报告的MySQL的索引基数
Cardinality列的值非常重要,该值代表在索引中每一列唯一值的数量的估计值
5.SHOW TABLE STATUS
该命令可以查看数据库的底层大小及表结构,包含存储引擎类型,版本,数据和索引大小,行的平均长度及行数
6.SHOW STATUS
该命令可以用来查看MySQL服务器的当前内部状态信息。
7.SHOW VARIABLES
该命令可以查看MySQL系统变量的当前值