索引,主鍵,唯一索引,聯合索引 的區別

簡單描述MySQL中,索引,主鍵,唯一索引,聯合索引 的區別,對數據庫的性能有什麼影響

索引是一種特殊的文件(InnoDB 數據表上的索引是表空間的一個組成部分),它們 包含着對數據表裏所有記錄的引用指針。

  1. 主鍵索引(Primary Key): 數據表的主鍵列使用的就是主鍵索引。一張數據表有只能有一個主鍵,並且主鍵不能爲null,不能重複。

  2. 唯一索引(Unique Key) :唯一索引也是一種約束。唯一索引的屬性列不能出現重複的數據,但是允許數據爲NULL,一張表允許創建多個唯一索引。 建立唯一索引的目的大部分時候都是爲了該屬性列的數據的唯一性,而不是爲了查詢效率。也就是說,唯一索引可以保證數據記錄的唯一性。

  3. 普通索引 :由關鍵字 KEY 或 INDEX 定義的索引的唯一任務是加快對數據的訪問速度,一張表允許創建多個普通索引,並允許數據重複和NULL。

  4. 前綴索引(Prefix) :前綴索引只適用於字符串類型的數據。前綴索引是對文本的前幾個字符創建索引,相比普通索引建立的數據更小,
    因爲只取前幾個字符。

  5. 全文索引(Full Text) :全文索引主要是爲了檢索大文本數據中的關鍵字的信息,是目前搜索引擎數據庫使用的一種技術。Mysql5.6之前只有MYISAM引擎支持全文索引,5.6之後InnoDB也支持了全文索引。

主鍵,是一種特殊的唯一索引,在一張表中只能定義一個主鍵索引,主鍵用於唯 一標識一條記錄,使用關鍵字 PRIMARY KEY 來創建。

索引可以覆蓋多個數據列,如像 INDEX(columnA, columnB)索引,這就是聯合索引。

索引可以極大的提高數據的查詢速度,但是會降低插入、刪除、更新表的速度, 因爲在執行這些寫操作時,還要操作索引文件。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章