示例
示例
SHOW GLOBAL STATUS LIKE 'Innodb_buffer_pool_read%';
-- 命中率 = 1 - reads / read_requests
SELECT
ROUND(
(1 - (SELECT VARIABLE_VALUE FROM performance_schema.global_status
WHERE VARIABLE_NAME = 'Innodb_buffer_pool_reads')
/ (SELECT VARIABLE_VALUE FROM performance_schema.global_status
WHERE VARIABLE_NAME = 'Innodb_buffer_pool_read_requests'), 4) * 100, 2) AS hit_pct;| read_requests | 逻辑读请求(包含命中) |
|---|---|
| reads | 未命中、需要物理读的次数 |
| 判读 | 用短窗口做差;命中率低时先看是否扫了未缓存的大表 |