innodb索引,InnoDB概覽

 2023-11-19 阅读 23 评论 0

摘要:  InnoDB 采用了MVCC來支持高并發,并且實現了四個標準的隔離級別。其默認級別是REPEATABLE READ(可重復讀) ,并且,通過間隙鎖(next-key locking)策略防止幻讀的出現。間隙鎖使得InnoDB 不僅僅鎖定查詢涉及的行,還會對索引中的間

  InnoDB 采用了MVCC來支持高并發,并且實現了四個標準的隔離級別。其默認級別是REPEATABLE READ(可重復讀) ,并且,通過間隙鎖(next-key locking)策略防止幻讀的出現。間隙鎖使得InnoDB 不僅僅鎖定查詢涉及的行,還會對索引中的間隙進行鎖定,防止幻影行的插入。

  InnoDB 是基于聚簇索引建立的。InnoDB的索引結構和mysql的其他存儲引擎有很大的不同,聚簇索引對主鍵查詢有很高的性能。不過它的二級索引(second index,非主鍵索引)中必須包含主鍵列,所以如果主鍵列很大的話,其他的所有索引都會很大。因此,若表上的索引較多的話,主鍵應該盡可能的小。INNODB 的存儲格式是平臺獨立的,也就是說可以將數據和索引文件從intel平臺復制到power pc或者sun sparc平臺。

  InnoDB 內部做了很多優化,包括從磁盤讀取數據時采用的可預測性預讀,能夠自動在內存中創建hash索引以加速讀操作的自適應哈希索引(adaptive hash index),以及能夠加速插入操作的插入緩沖區(insert buffer)等。

  InnoDB 的行為是非常復雜的,不容易理解。如果使用了InnoDB,筆者強烈建議閱讀官方手冊中的“InnoDB事務模型和鎖” 一節。如果應用程序基于InnoDB構建,則事先了解一下InnoDB的MVCC架構帶來的一些微妙和細節之處是非常有必要的。存儲引擎要為所有用戶甚至包括修改數據行為的用戶維持一致性的視圖,是非常復雜的工作。

innodb索引?  作為事務型的存儲引擎,InnoDB 通過一些機制和工具支持真正的熱備份。Mysql的其他存儲引擎不支持熱備份,要獲取一致性視圖需要停止對所有表的寫入,而在讀寫混合場景中,停止寫入可能也意味著停止讀取。

轉載于:https://www.cnblogs.com/zhengyanqiu/p/4970351.html

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/1/180702.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息