數據庫--索引

1. 什麼是索引:

MySQL官方對索引的解釋是:幫助MySQL高效獲取數據的數據結構
在這裏插入圖片描述
所以索引的主要功能是:查找和排序。直接影響WHERE 和 ORDER BY 的效率。

2. 什麼樣的結構呢?

在數據之外,數據庫還維護着滿足特定查找算法的數據結構,這些數據結構以某種方式引用(指向)數據。這樣就可以在這些數據結構上實現高級查找算法,這種數據結構就是索引。
在這裏插入圖片描述

3. 索引的特點

索引佔據空間很大,一般都是以索引文件的格式存儲在磁盤上。

4. 優勢

1)提高數據檢索效率,降低數據IO成本
2)降低數據排數成本,降低CPU消耗

5. 劣勢

1)實際上索引也是一張表,該表保存了索引與索引字段,並指向實體表的記錄,所以索引列也是要佔空間的。
2)雖然索引大大提高了查詢速度,但是會降低更新表的速度,如對錶進行insert,delete,update操作,因爲更新表的時候,MySQL不僅要保存數據,還要保存一下索引文件每次更新添加的索引字段,都會調整因爲更新因爲更新所帶來的鍵值變化後的索引信息。
3)索引只是提高效率的一個因素,如果MySQL有大數據量的表,就需要花時間研究建立最優秀的索引,

6. 索引的類別

單值索引:即一個索引只包含單個列,一個表可以有多個單值索引。
唯一索引:索引列的值必須唯一,但允許有空值
複合索引:即一個索引包含多個列。

7. 如何創建索引:

在這裏插入圖片描述

8. 如何添加索引:

ALTER TABLE 表名 ADD  PRIMARY KEY (colum_list);//該語句添加一個主鍵,表示該主鍵必須唯一且不能爲空。
ALTER TABLE 表名 ADD  UNIQUE index_name (colum_list);//這條語句創建索引的值必須是唯一的,(除了NULL外,因爲NULL可能會出現多次)
ALTER TABLE 表名 ADD  INDEX index_name (colum_list);//這條語句添加普通索引,索引值可以出現多次
ALTER TABLE 表名 ADD  FULLTEXT index_name (colum_list);//這條語句指定了索引爲FULLTEXT,用於全文索引。 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章