加载中...

缓冲池(Buffer Pool)是 InnoDB 在内存中开辟的页缓存区域,缓存数据页、索引页、undo 页等。所有读写都先经过缓冲池:读命中则免去磁盘 IO,写则先改内存页(脏页)再异步刷盘。其大小由 innodb_buffer_pool_size 控制,通常建议设为专用服务器物理内存的 50% 到 75%。
InnoDB 使用改良版 LRU:链表分为热端(young)与冷端(old,默认占 3/8)。新读入的页先放冷端头部,只有停留超过一定时间(innodb_old_blocks_time)后再次被访问才晋升热端。这一设计防止全表扫描、mysqldump 等一次性大扫描把真正的热数据冲刷出内存。
脏页由后台线程按检查点节奏刷盘;缓冲池可分多个实例减少锁竞争;MySQL 支持在关机时导出、启动时装载缓冲池内容(warm up),避免重启后的冷缓存抖动。

登录 后参与讨论
暂无讨论,来发表第一条评论吧