数据库索引效率分析

当我们在创建好一个数据库表时,虽然已经同时创建好各个表的索引,但却不知道该索引的执行效率如何?是否是索引方案中最有效的一种?
MySQL提供了一个内建的SQL命令来帮助我们完成这个任务,这就是EXPLAIN命令。EXPLAIN命令一般语法是:EXPLAIN。例子如下:
EXPLAIN SELECT peopleid FROM people WHERE firstname='Mike' AND lastname='Sullivan' AND age='17';
这个命令将返回分析结果,我们来看看这些数据是什么意思:

table:这是表的名字。
type: 连接操作的类型。如果EXPLAIN显示连接类型是“ALL”,而且你并不想从表里面选择出大多数记录,那么MySQL的操作效率将非常低,因为它要扫描整个表。你可以加入更多的索引来解决这个问题。
possible_keys:
可能可以利用的索引的名字。这里的索引名字是创建索引时指定的索引昵称;如果索引没有昵称,则默认显示的是索引中第一个列的名字。默认索引名字的含义往往不是很明显。
Key:
它显示了MySQL实际使用的索引的名字。如果它为空(或NULL),则MySQL不使用索引。
key_len:
索引中被使用部分的长度,以字节计。
ref:
它显示的是列的名字(或单词“const”),MySQL将根据这些列来选择行。
rows:
MySQL所认为的它在找到正确的结果之前必须扫描的记录数。显然,这里最理想的数字就是1。
Extra:
这里可能出现许多不同的选项,其中大多数将对查询产生负面影响。

Need a translation service?

Please enter your personal details and we will contact you shortly

    Words translated by CCJK

    146,096,379

    Our Client Satisfaction

    Rating for previous quarter

    5.00

    Over 95% of our clients recommend our language services to others