MySQL索引篇----索引的定義與優缺點

索引介紹數據庫

索引是什麼數據結構

官⽅介紹索引是幫助MySQL⾼效獲取數據的數據結構。更通俗的說,數據庫索引好⽐是⼀本書前⾯的⽬錄,能加快數據庫的查詢速度。排序

⽅便查找---檢索
索引查詢內容---覆蓋索引
排序索引

⼀般來講索引自己也很⼤,不可能所有存儲在內存中,所以索引每每是存儲在磁盤上的⽂件中的(可能存儲在單獨的索引⽂件中,也可能和數據⼀起存儲在數據⽂件中)。內存

咱們一般所說的索引,包括彙集索引、覆蓋索引、組合索引、前綴索引、惟⼀索引等,沒有特別說明,默認都是使⽤B+樹結構組織(多路搜索樹,並不⼀定是⼆叉的)的索引。效率

索引的優點和劣勢搜索

優點:
能夠提⾼數據檢索的效率,下降數據庫的IO成本,相似於書的⽬錄。 -- 檢索經過索引列對數據進⾏排序,下降數據排序的成本,下降了CPU的消耗。 --排序
被索引的列會⾃動進⾏排序,包括【單列索引】和【組合索引】,只是組合索引的排序要複雜⼀些。
若是按照索引列的順序進⾏排序,對應order by語句來講,效率就會提⾼不少。
where 索引列 在存儲引擎層 處理
覆蓋索引,不須要回表查詢數據

劣勢:
索引會佔據磁盤空間
索引雖然會提⾼查詢效率,可是會下降更新表的效率。⽐如每次對錶進⾏增刪改操做,MySQL不只要保存數據,還有保存或者更新對應的索引⽂件。查詢

相關文章
相關標籤/搜索