原英文:http://dev.mysql.com/doc/refman/5.5/en/explain.html
DESCRIBE和EXPLAIN是别名。实践中,DESCRIBE关键字常用来获取表结构的信息。然而EXPLAIN用来获取查询执行计划(Mysql执行一个查询的说明),接下来的论述使用DESCRIBE和EXPLAIN关键字依照这些用法,MYSQL 解析器将他们视为同义词。
获取表结构信息
DESCRIBE 提供表列的信息
DESCRIBE 是显示列的快捷方式。这些语句也显示视图信息,SHOW COLUMNS输出更多列的信息,详细参考http://dev.mysql.com/doc/refman/5.5/en/show-columns.html
默认下,DESCRIBE显示表所有列的信息,如果提供列名,将显示提供列名的那列。如果提供Wild,一种模型,它可以包含“%”和“_”通配符。在这种情况下,语句显示与字符串相匹配的列。除非含有空格和特殊字符,否则没有必要在引号里附上字符串。
DESCRIBE语句与Oracle兼容。
SHOW CREATE TABLE,show table status,和show index语句也提供表的信息
参考:http://dev.mysql.com/doc/refman/5.5/en/show.html
获取执行计划信息
EXPLAIN语句提供mysql执行语句信息:
当你在SELECT语句前使用explain关键字,MYSQL显示信息
在EXPLAIN的帮助下,你可以查看哪里需要添加索引以至于表通过索引更快,你也可以使用EXPLAIN来检查优化程序连接表是否是最优的命令。为了优化器给出SELECT语句一致的提示,用SELECT STRAIGHT_JOIN语句而不是SELECT语句。
如果你不知道什么时候什么时候使用索引,使用ANALYZE TABLE来更新表的统计资料,
参考:http://dev.mysql.com/doc/refman/5.5/en/analyze-table.html