鍍金池/ 問答/Java  數據庫/ 數據庫中聚集索引是否存儲了真實數據

數據庫中聚集索引是否存儲了真實數據

索引是一種數據結構,b+樹的葉子節(jié)點中存放的是指向實際行的指針。
那么聚集索引呢,InnoDB 的聚簇索引在同一個結構中保存了 B+Tree 索引和數據行,這句話是什么意思?
是不是說非聚集索引葉子節(jié)點中的指針指向的就是聚集索引中存放的數據行

回答
編輯回答
傲嬌范

InnoDB聚集索引是按照主鍵(primary key)進行聚集的,每張表只能有一個聚集索引,表數據文件本身就是按B+Tree組織的一個索引結構,葉子節(jié)點的data域保存了完整的數據記錄;所以說,InnoDB表數據文件本身就是主索引文件,也就是你剛剛說的“同一個結構中保存了 B+Tree 索引和數據行”。聚集索引的方式會使根據主鍵的范圍查找和排序非??欤▍⒖季奂饕臄祿Y構)。

InnoDB輔助索引的實現方式是所有輔助索引都引用主鍵作為data域,因此輔助索引搜索需要檢索兩次索引才能獲得數據記錄,但是這樣輔助索引的變更會很方便(不會影響根據主索引組織的數據文件本身),同時因為所有的輔助索引都引用主索引,不建議主索引過大。

2017年9月29日 06:01