它是 key_buffer 还是 key_buffer_size?

它是 key_buffer 还是 key_buffer_size?

我在网上搜索了my.cnf文件中正确的变量。有人说这个变量key_buffer_size已被弃用,但有人说这key_buffer_size是正确的变量my.cnf

那么,这里真正正确的变量是什么?是key_buffer还是key_buffer_size

我正在使用 Ubuntu 12.04。

而且我key_buffermy.cnf文件中还有两个变量。这是我安装 MySQL 后得到的。

第一个位于此处:

[mysqld]
key_buffer              = 16M

另外一个位于此处:

[isamchk]
key_buffer              = 16M

答案1

我不认为key_buffer_size这是过时的,mysqlkey_buffer_size在其网站上的文档中使用最早可用直到最新版本。还有一个错误报告请求弃用的变量会在启动时发出警告,这表明它key_buffer已被弃用。

我个人会选择文档,因为它应该是权威的,虽然互联网上充满了有用的信息,但也充满了错误信息。


话虽如此,mysql 似乎会尽力将你提供的变量名与它的变量进行匹配,只要你提供的名称是唯一的,它就会这样做

key_buffer_size = 16m

mysql> show variables like '%key_buffer%';
+-----------------+----------+
| Variable_name   | Value    |
+-----------------+----------+
| key_buffer_size | 16777216 |
+-----------------+----------+
1 row in set (0.00 sec)

更改为 key_buffer = 6m

mysql> show variables like '%key_buffer%';
+-----------------+---------+
| Variable_name   | Value   |
+-----------------+---------+
| key_buffer_size | 6291456 |
+-----------------+---------+
1 row in set (0.00 sec)

更改为key_b =16m

mysql> show variables like '%key_buffer%';
+-----------------+----------+
| Variable_name   | Value    |
+-----------------+----------+
| key_buffer_size | 16777216 |
+-----------------+----------+
1 row in set (0.00 sec)

更改为 key_ = 16m 并且 mysql 无法启动,因为 key_ 不是唯一的。

相关内容