InnoDB引擎的三大特性是什么?

InnoDB的三大特性是:Buffer Pool、自适应Hash索引、双写缓冲区。

 

1. Buffer Pool,为了提高访问速度,MySQL预先就分配/准备了许多这样的空间,为的就是与MySQL数据文件中的页做交换,来把数据文件中的页放到事先准备好的内存中。数据的访问是按照页(默认为16KB)的方式从数据文件中读取到 buffer pool中。Buffer Pool按照最少使用算法(LRU),来管理内存中的页。

2. 双写缓冲区,是一个位于系统表空间的存储区域,在写入时,InnoDB先把从缓冲池中的得到的page写入系统表空间的双写缓冲区。之后,再把page写到.ibd数据文件中相应的位置。如果在page写入数据文件的过程中发生意外崩溃,InnoDB在稍后的恢复过程中在doublewrite buffer中找到完好的page副本用于恢复。

doublewrite是顺序写,开销比较小。所以在正常的情况下, MySQL写数据page时,会写两遍到磁盘上,第一遍是写到doublewrite buffer,第二遍是从doublewrite buffer写到真正的数据文件中。

 

2022最新MySQL面试题-有详细完整的答案解析-腾讯云开发者社区-腾讯云 (tencent.com)

posted @   littlevigra  阅读(427)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具
· Manus的开源复刻OpenManus初探
历史上的今天:
2021-03-05 从建立连接到关闭连接的过程称为“一次连接”。 TCP/IP协议 - 解决Nginx+Tomcat出现间隙性502问题 - 抓包-看fin和具体时间点-来排除干扰 tcpdump抓包 502 tomcat nginx
2019-03-05 PAM unable to dlopen(/lib/security/pam_limits.so): /lib/security/pam_limits.so: wrong ELF class: ELFCLASS32
2019-03-05 iRedMail退信问题的解决(转)
2018-03-05 ansible-playbook如何判断并中断执行
点击右上角即可分享
微信分享提示