索引類型
主鍵索引:
- 一個表只能有一個主鍵
- 資料列不允許重複
- 不允許為NULL
普通索引(secondary index):
- 沒有唯一性限制
- 可為NULL
-- 一般索引 ALTER TABLE table_name ADD INDEX index_name(column); -- 複合索引 ALTER TABLE table_name ADD INDEX index_name(column1, column2, column3);
前綴索引:多用在搜尋某文字段落時
- 沒有覆蓋索引的功能,所以一定會回去 clustered Index 找資料
-- 預設是使用字段的全部内容建立索引;n值代表使用字段的前n個字符建立索引 ALTER TABLE table_name ADD INDEX KEY (Field(n)); -- example ALTER TABLE users ADD INDEX name_tag (name(1));
唯一索引(unique index):適合存放編號類的值的欄位,順便可以檢查是否唯一值
- 可以作為叢集索引(clustered Index)的索引值
- 唯一性
- 可為NULL
// 一般索引 ALTER TABLE table_name ADD UNIQUE (column); // 複合索引 ALTER TABLE table_name ADD UNIQUE (column1,column2);
全文索引:搜尋引擎使用的一種關鍵技術
ALTER TABLE table_name ADD FULLTEXT(column);
備註:
- 一般索引:常用單獨查詢時
- 複合索引(compound index):常常與其他欄位一起查詢時。需要注意先後,查詢頻度高與基數高的適合放左邊