3

我对我的mysql状态有些困惑。mysql> 显示类似 '%key%' 的状态;

+------------------------+-------+
| Variable_name          | Value |
+------------------------+-------+
| Com_assign_to_keycache | 0     |
| Com_preload_keys       | 0     |
| Com_show_keys          | 0     |
| Handler_read_key       | 2     |
| Key_blocks_not_flushed | 0     |
| Key_blocks_unused      | 13396 |
| Key_blocks_used        | 0     |
| Key_read_requests      | 0     |
| Key_reads              | 0     |
| Key_write_requests     | 0     |
| Key_writes             | 0     |

但是,服务器上有大量(每天超过 10 亿次)插入、更新和查询,但是为什么状态的值为 0。服务器已经运行了将近 3 天。(正常运行时间:2 天 18 小时 54 分 19 秒) .我没有刷新服务器的状态。Some db config engine = innodb,key_buffer = 16M, innodb_buffer_pool_size = 2147483648。感谢您提供任何信息。

4

2 回答 2

4

也许您正在使用 InnoDB 表?

这些 Key_XXX 服务器状态值用于 MyISAM 表。

于 2012-05-15T07:10:49.523 回答
1

您正在查看的值适用于 MyISAM 表。它们代表 MyISAM 密钥缓存:

http://dev.mysql.com/doc/refman/5.0/en/myisam-key-cache.html

此缓存保存最近使用的密钥,并期望最近使用的密钥可能很快再次被重用——因此它们可能对缓存有价值。

由于您使用的是 innodb,因此未使用密钥缓存。

出于调优目的,您应该尽量减少专用于密钥缓存的内存量。从 innodb 处理中取出的任何内存都可能被浪费了 -

于 2012-05-16T02:09:00.807 回答