Buffer Pool:MySQL的内存管理核心

Buffer Pool概述 Buffer Pool(缓冲池) 是InnoDB最重要的内存结构,用于缓存数据页和索引页。 ┌──────────────────────────────────────┐ │ MySQL内存结构 │ ├──────────────────────────────────────┤ │ Buffer Pool(最大,默认128MB) │ 缓存数据页 ├──────────────────────────────────────┤ │ Change Buffer │ 缓存写操作 ├──────────────────────────────────────┤ │ Adaptive Hash Index │ 自适应哈希索引 ├──────────────────────────────────────┤ │ Log Buffer │ 缓存redo log └──────────────────────────────────────┘ Buffer Pool的作用 1. 减少磁盘IO -- 无Buffer Pool(每次查询都访问磁盘) SELECT * FROM users WHERE id = 1; -- 磁盘IO:10ms -- 有Buffer Pool(缓存命中,直接读内存) SELECT * FROM users WHERE id = 1; -- 内存读取:0.01ms(快1000倍) 2. 提升并发性能 -- 多个事务并发读取同一数据页 事务A: SELECT * FROM users WHERE id = 1; -- 加载到Buffer Pool 事务B: SELECT * FROM users WHERE id = 1; -- 直接从Buffer Pool读取(无磁盘IO) 事务C: SELECT * FROM users WHERE id = 1; -- 直接从Buffer Pool读取 Buffer Pool的结构 1. 缓冲页(Buffer Page) 缓冲页是Buffer Pool的基本单位,与磁盘页一一对应。 ...

2025-01-15 · maneng

如约数科科技工作室

浙ICP备2025203501号

👀 本站总访问量 ...| 👤 访客数 ...| 📅 今日访问 ...