Lou18

18

索引類型

發布於
修訂於

主鍵索引:

  • 一個表只能有一個主鍵
  • 資料列不允許重複
  • 不允許為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):常常與其他欄位一起查詢時。需要注意先後,查詢頻度高與基數高的適合放左邊

喜歡我的文章嗎?
別忘了給點支持與讚賞,讓我知道創作的路上有你陪伴。

CC BY-NC-ND 2.0 版權聲明
3

看不過癮?

一鍵登入,即可加入全球最優質中文創作社區