S'agit-il de key_buffer ou key_buffer_size?

9

Je recherche sur Internet la variable correcte dans le my.cnffichier. Certains ont dit que key_buffer_sizec'était obsolète, mais certains ont dit que key_buffer_sizec'était la bonne variable dans my.cnf.

Alors, quelle est vraiment la bonne variable ici? C'est key_bufferou key_buffer_size?

J'utilise Ubuntu 12.04.

Et j'ai aussi les deux key_buffervariables dans le my.cnffichier. C'est ce que j'ai obtenu après l'installation de MySQL.

Le premier est situé sous ceci:

[mysqld]
key_buffer              = 16M

L'autre est situé sous ceci:

[isamchk]
key_buffer              = 16M
jaYPabs
la source

Réponses:

11

Je ne pense pas qu'il key_buffer_sizesoit obsolète, l'utilisation de mysql key_buffer_sizedans la documentation de leur site Web depuis la première version disponible jusqu'à la dernière version . Il existe également un rapport de bogue qui demande que les variables obsolètes émettent des avertissements au démarrage, ce qui suggère que c'est key_bufferobsolète.

Personnellement, j'irais avec la documentation car elle devrait faire autorité et bien qu'Internet regorge d'informations utiles, il est également plein de désinformation.


Cela dit, il semble que mysql fasse tout son possible pour faire correspondre les noms de variables que vous fournissez à ses variables et le fera tant que le nom que vous fournissez est unique.

Avec key_buffer_size = 16m

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

Passer à key_buffer = 6m

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

Passez à key_b = 16m

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

Changez en key_ = 16m et mysql ne démarre pas car key_ n'est pas unique.

user9517
la source
Je vous remercie. Je me demande simplement parce qu'après l'installation de MySQL, la variable n'est pas key_buffer_size, mais plutôt key_buffer uniquement.
jaYPabs
@ user176890: Oui, je l'ai remarqué aussi. Si vous êtes vraiment curieux, vous devriez demander à Canonical qui maintient et met à jour Ubuntu.
user9517
L'astuce clé ici - à laquelle Lain m'a battu - était d'utiliser SHOW VARIABLE LIKE '%key_buffer%';Je me trompe constamment sur les conventions de nommage MySQL et SHOW VARIABLESc'est une bouée de sauvetage.
JakeGould
1
Vous battre à 6 mois @JakeGould
user9517
@Iain Holy cr @ p! Le vieux poste m'a piqué à nouveau.
JakeGould