在資料庫的世界,索引扮演了很重要的角色,也是大家所熟知的.
今天開始探討索引.
直接來看在MySQL關於索引的一個重要指令: EXPLAIN
EXPLAIN SELECT
host
, user
, password
FROM mysql.user
WHERE user LIKE 'a%'\G
*************************** 1. row ***************************
id: 1
select_type: SIMPLE
table: user
type: ALL
possible_keys: NULL
key: NULL
key_len: NULL
ref: NULL
rows: 5
Extra: Using where
1 row in set (0.01 sec)
\G 是 MySQL Client 的一個功能,可以將一般的橫式顯示轉為上面的直式顯示.
上面可以看到這道 SQL Query 沒有使用到 key, 也就是索引.
接著來看另一道SQL Query
EXPLAIN SELECT
host
, user
, password
FROM mysql.user
WHERE host = 'localhost'
AND user LIKE 'a%'\G
*************************** 1. row ***************************
id: 1
select_type: SIMPLE
table: user
type: range
possible_keys: PRIMARY
key: PRIMARY
key_len: 228
ref: NULL
rows: 1
Extra: Using where
可以看到回報可能使用PRIMARY KEY, 也使用了PRIMARY KEY.