什麼是索引

娃哈哈哈哈哈哈哈哈哈哈哈哈哈哈發表於2020-12-16

什麼是索引

索引可以簡單理解為是一種排好序的快速查詢資料結構
索引對於排序和條件有很大的影響

索引的優勢

1.提高資料檢索效率,降低資料庫io成本
2.降低資料排序的成本,降低cpu消耗

索引的劣勢

1.索引實際上也是一張表,儲存了主鍵與索引欄位,佔用空間
2.雖然提高了查詢速度,但更新表會修改資料和修改索引,會變慢

索引分類

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

索引語法

建立:
create index 索引名 on 表名(欄位名)
alter 表名 add index 索引名 on(欄位名)
刪除:
drop index 索引名 on 表名
檢視:
show index from 表名

索引結構

1.BTree索引:
2.hash索引

哪些情況需要建立索引

1.主鍵自動建立唯一索引
2.頻繁作為查詢條件的欄位
3.外來鍵關係建立索引
4.推薦建立組合索引(組合索引要遵循最左原則)
5.統計或者分組欄位

哪些情況不要建立索引

1.表資料在300w一下不推薦
2.經常增刪改的表
3.資料重複平均的列

相關文章