Buffer Pool的家庭地位如何?

Buffer Pool是啥?

数据库中的数据,实际上最终都要存放在磁盘文件。但对DB执行CRUD时,不可能直接更新磁盘数据,因为若你对磁盘进行随机读写操作,那速度太慢,随便一个大磁盘文件的随机读写操作,可能都要几百ms。真这么玩,你的DB每秒也就只能处理几百个请求了!

在对数据库执行CRUD时,实际上主要都是操作内存里的Buffer Pool中的数据,即你实际上主要是对DB的内存里的数据结构进行增删改。

在DB内存里执行一堆增删改操作后,内存数据是更新了,但这时若DB突然宕机,那内存里更新好的数据不就都没了?

所以MySQL也怕这个问题,于是引入了redo log,你在对内存数据进行增删改时,他同时也会把增删改对应日志写入redo log:

即使DB突然宕机,没事儿,只要从redo log日志文件读出你之前做过哪些增删改操作,瞬间就能重新把这些增删改操作在你的内存里执行一遍,就恢复了之前做过哪些操作了。

总结

Buffer Pool就是DB中我们第一个必须要搞清楚的核心组件,因为增删改操作首先就是针对这个内存中的Buffer Pool里的数据执行的,同时配合了后续的redo log、刷磁盘等机制和操作。

所以Buffer Pool就是数据库的一个内存组件,里面缓存了磁盘上的真实数据,Java业务系统对数据库执行的增删改操作,其实主要就是对这个内存数据结构中的缓存数据执行。

#Java求职##学习路径#
全部评论
感谢楼主分享!!
1 回复 分享
发布于 2022-02-11 18:41
华为集团IT开放应届生春招,时间窗很短,本硕博均可,base深圳、北京、东莞等 急需:21至22年毕业的博士生、海外毕业的中国籍留学生、国内高校本硕 投递入口:A. 即刻投递简历:yangjingjie3@huawei.com,微信:fishhh6 B. 登陆 华为招聘官网(Career.Huawei.com)直接进行简历投递,第一意向部门请选择【集团IT】 C. 微信关注公众号:华为集团IT招聘,了解最新动态&HR联系方式 ① 博士岗位:AI研究员、AI数据科学家、区块链高级工程师、大数据分析高级工程师、AI算法高级工程师、网络安全研究员、云计算PaaS技术研究员等~ ② 本硕岗位:数字化IT应用工程师、AI工程师、软件开发工程师、算法工程师、网络安全与隐私保护工程师等~
点赞 回复 分享
发布于 2022-02-21 15:11

相关推荐

评论
2
26
分享
牛客网
牛客企业服务