我想知道是否有任何query
/config
/trick
/etc 来知道innodb_buffer
用于获取上次查询
的结果。
PS:这是在性能调整的背景下,我不想让事情保持最佳猜测,所以有没有办法提供具体的证据,如果 buffer_pool
被使用或正常使用了数据库查找。
PPS:我已经搜索过类似的相关术语
- 检查缓冲区是否被mysql使用
- Innodb 缓冲区使用检查
- 验证结果是否从缓冲池或数据存储中加载。等等。
最佳答案
注意 Innodb%
的 GLOBAL STATUS
值的变化。 Handler%
也是如此。
我喜欢这样做来弄清楚查询中发生了什么:
FLUSH STATUS;
SELECT ...
SHOW SESSION STATUS LIKE 'Handler%';
它准确地告诉我有多少行被触摸了多少次。以及是否正在使用临时表以及它有多大(以行为单位)。等等
在 InnoDB 查询中不“使用”buffer_pool 的唯一方法是使用查询缓存。
可能您正在寻找的不是 buffer_pool 是否被“使用”,而是在使用之前是否必须从磁盘中获取 block ?
关于mysql - 检查上次查询是否使用了缓冲区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49847819/