1 InnoDB兩種索引介紹
-
B+樹索引:B+樹在數據庫中的實現,高度大約2~3層,最多2-3次I/O即可查詢到數據行
-
聚集索引:按照主鍵構造的一棵B+樹
-
葉子節點存放表的行記錄,葉子節點也稱數據頁
-
非葉子節點存放鍵值以及指向數據頁的偏移量
-
-
輔助索引:
- 葉子節點包含鍵值以及對應行數據的主鍵
- 每張表可以存在多個非聚集索引
-
-
哈希索引:InnoDB存儲引擎使用自適應哈斯索引,采用散列表的數據結構,加速查詢
-
key:索引鍵值,value:索引記錄頁面位置
-
系統自動生成,無法手動干預
-
注:B+樹索引的使用場景:取值范圍廣、高選擇性的字段
2 創建/刪除索引
-
ALTER TABLE
ALTER TABLE 表名 ADD [UNIQUE|FULLTEXT|SPATIAL] INDEX 索引名 (字段名 (長度)[ASC|DESC])
ALTER TABLE 表名 DROP INDEX index_name
CREATE/DROP INDEX
CREATE UNIQUE INDEX indexName ON mytable(username(length))?
#drop索引
ALTER TABLE testalter_tbl DROP INDEX c;
#drop主鍵
ALTER TABLE testalter_tbl DROP PRIMARY KEY;?