您现在的位置是:首页 > 文章详情

MySQL8.0InnoDB的架构。

日期:2020-06-09点击:358

跟其他关系型数据库一样,MySQL的架构也分为In-Memory 和On-Disk两部分。

申请阿里云服务时,可以使用2000元阿里云代金券,阿里云官网领取网址:https://dashi.aliyun.com/site/yun/youhui
On_Disk_jpeg

阿里云服务器1核2G低至82元/年,阿里云官活动网址:https://dashi.aliyun.com/site/yun/aliyun 可以用20代金券,即102-20=82。

在内存结构中,主要由4大块组成。

Buffer Pool(以下简称bp)
bp在整个内存中占绝大多数,MySQL官方一般建议设置为服务器物理内存的80%。这边建议MySQL整体内存控制在80%左右,bp最好不要超过70%,不然容易OOM。
理解了bp的原理,对于数据库也有差不多理解了一半了。bp主要结构是个list,用的是LRU算法的变种(least recently used)。
主要用来缓存数据块(page,也叫页),mysql默认为16k,oracle为8k。如果内存达到了阈值,那么就会把最近最少使用到的page驱逐(evicted)出内存。然后把新页插入到中间位置,一般为整条list的热端5/8处。
查看下图可以看到,整个bp分为两个sublist,上端为热端,缓存热点数据(频繁被访问);另外一端为冷端,随时被驱逐出内存。
也正是因为磁盘访问数据不如内存,才有了bp的存在,大家也可以想象一下,如果磁盘数据比内存快,还有bp存在的价值吗?
所有用户访问的数据,都要先经过bp,但如果走全表扫描,按道理也有把数据缓存在bp中,那么势必会把大量数据驱逐出去,当然我们也可以通过调整参数来优化,这个我们在这篇知识普及文档中暂不提及。
_jpeg

Change Buffer
Adaptive Hash Index
Redo Log Buffer

原文链接:https://yq.aliyun.com/articles/764552
关注公众号

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。

持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。

文章评论

共有0条评论来说两句吧...

文章二维码

扫描即可查看该文章

点击排行

推荐阅读

最新文章