數據結構和索引
- 什么是索引
- 索引的種類
- 常見索引數據結構和區別
- 二叉樹
- 紅黑樹
什么是索引
索引的種類
在Mysql中索引是在存儲引擎層實現的,而不是在服務層實現的
- 按數據結構分:B+tree索引、Hash索引、Full-text索引
- 按存儲結構分:聚簇索引、非聚簇索引
- 按字段特性分:主鍵索引、唯一索引、普通索引、全文索引
- 按字段個數分:單例索引、聯合索引
常見索引數據結構和區別
- 二叉樹、紅黑樹、B樹、B+數
- 區別:樹的高度影響獲取數據的性能(每一個樹節點就是一次磁盤IO)
二叉樹
特點:每一個節點最多有兩個子節點,左小右大。在數據隨機性情況下樹杈越明顯。
將以下表的id設置為索引
就是將id列按照二叉樹的數據結構存儲起來
如果數據是順序一次進入
樹的高度會很高(就是一個鏈表結構),此時元素的查找效率就等于鏈表查詢O(n),數據檢索效率將極為低下。