Innodb_buffer_pool_reads读衡量了需要从磁盘读取到缓冲池的次数。 通常情况下,我们希望Innodb_buffer_pool_reads的值越小越好,因为它表示从磁盘中读取数据页到缓冲池中的次数越少,缓冲池的命中率越高,查询性能和系统响应时间也会更好。 如果Innodb_buffer_pool_reads的值较大,则可能表示缓冲池的大小不足或者热数据...
Performance = innodb_buffer_pool_reads / innodb_buffer_pool_read_requests * 100 innodb_buffer_pool_reads:表示InnoDB缓冲池无法满足的请求数。需要从磁盘中读取。 innodb_buffer_pool_read_requests:表示从内存中读取逻辑的请求数。 例如,在我的服务器上,检查当前InnoDB缓冲池的性能 mysql> show status like '...
Free buffers 6975 #数据库中innodb buffer pool中空闲page的数量 Database pages 1211 #数据库中innodb buffer pool中非空闲page的数量。 Old database pages 467 #Old子列表中的page数量 Modified db pages 12 #当前buffer pool中被修改的page数量 Pending reads 4 #数据由磁盘读到buffer pool,被挂起的次数 Pend...
Innodb_buffer_pool_read_requests 和 Innodb_buffer_pool_reads 是另外两个关键指标。read_requests 表示向 Buffer pool 发起的查询总量,如果 Buffer pool 缓存了相关数据直接返回就好,如果 Buffer pool 没有相关数据,就要穿透内存去查询硬盘了。有多少请求满足不了需要去查询硬盘呢? 看Innodb_buffer_pool_reads 指标...
innodb_buffer_pool_size 默认是128M, 缓冲池的大小(以字节为单位),即InnoDB缓存表和索引数据的内存区域。默认值为134217728字节(128MB)。最大值取决于CPU架构;32位系统上的最大值为4294967295(2^32-1),64位系统上为18446744073709551615(2^64-1)。在32位系统上,CPU体系结构和操作系统可能会施加比所述最大值...
1、Innodb_buffer_pool_reads 表示InnoDB缓冲池无法满足的请求,从而到物理磁盘读取页的次数 2、Innodb_buffer_pool_read_ahead 预读次数 3、Innodb_buffer_pool_read_ahead_evicted 预读的页 4、Innodb_buffer_pool_read_requests 从缓冲池中读取页的次数
innodb_buffer_pool_read_requests这个指标由于记录的是 page 数,在直观的数值上其实是不太好单独用来判断读压力的,毕竟一行数据可能有多个 page,少量的行数可能就会导致这个指标飙升;而重复访问同样的少量 page 也会让这个指标飙升,但是这些 page 可能全部缓存在内存中,实际上不一定会影响查询效率。最好是能结合其他...
监控Innodb_buffer_pool_reads和Innodb_buffer_pool_read_requests等状态变量,确保缓冲池的命中率较高。 如果发现缓冲池命中率低,可以考虑进一步增加缓冲池大小,或者优化查询和索引以减少不必要的I/O操作。 注意事项 不要将缓冲池大小设置得过大,以至于操作系统没有足够的内存用于其他进程。
缓冲池大小必须始终等于或者是innodb_buffer_pool_chunk_size * innodb_buffer_pool_instances的倍数。 如果将缓冲池大小更改为不等于或等于innodb_buffer_pool_chunk_size * innodb_buffer_pool_instances的倍数的值, 则缓冲池大小将自动调整为等于或者是innodb_buffer_pool_chunk_size * innodb_buffer_pool_instances...