首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

MySQL 索引類型、建立語法與多欄索引最左前綴原理

     編輯:MySQL 資料庫相關知識

索引類型速覽

單欄 vs 多欄 (複合) 索引

複合索引 INDEX name (last_name, first_name) 等同於按 last_name + first_name 排序的陣列。

最左前綴原則

WHERE 條件必須包含索引最左欄位才能用到索引:


-- 用到索引
WHERE last_name='Widenius'
WHERE last_name='Widenius' AND first_name='Michael'
WHERE last_name='Widenius' AND first_name>='M' AND first_name<'N'

-- 用不到索引
WHERE first_name='Michael'
WHERE last_name='Widenius' OR first_name='Michael'

建立語法


-- 普通
CREATE INDEX idx_name ON tbl (col);
-- 唯一
CREATE UNIQUE INDEX idx_email ON users(email);
-- 複合
CREATE INDEX idx_ln_fn ON users(last_name, first_name);

ALTER TABLE 同樣支援上述三類。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved
類型特點適用場景
普通索引無唯一限制一般查詢加速
唯一索引值唯一,允許多 NULL業務鍵 (Email、身分證)
主鍵唯一+非空,每表一個實體識別欄位
全文索引FULLTEXT,MyISAM 專用長文本搜尋