建立索引前後搜尋速度差別
一般是在建立表的時候建立索引,但表裡又資料之後也可以建立,且索引值只需要建立一次
-- 為資料庫表tb_emp的name欄位建立名為idx_emp_name的索引
create index idx_emp_name on tb_emp(name);
-- 查詢索引
show index from tb_emp;
-- 刪除索引
drop index idx_emp_name on tb_emp;
查詢結果
其中第一條為建立的 primary key的索引
其中第二條為建立的 unique的索引
其中第三條為建立的 外來鍵的索引
其中第四條為剛剛建立的索引
優點:
1.提供資料查詢的效率,降低資料庫io成本
2.透過索引對資料庫進行排序,降低資料排序成本,降低cup消耗
缺點:
1.索引回佔用空間(但其實佔不了多少且限制本身儲存空間也不小)
2.索引提供查詢效率,但回假想敵增刪改的效率(實際企業中查詢頻次比增刪改多得多)
MySQL的索引結構比較多,但通常情況下指的是 b+tree
特點:
1.每一個節點可以儲存對各key(有n個key,就有n個指標。樹一般在三到四層)
2.所有資料都儲存在葉子節點,非葉子節點僅用於索引資料
3.葉子節點形成雙向連結串列,便於資料的排序以及區間範圍的查詢