S'il y a suffisamment de blocs dans le cache de clé pour contenir tout un index, ou au moins les blocs correspondant aux blocs non-terminaux, alors cela vaut la peine de pré-charger l'index avant de commencer à l'utiliser. Le pré-chargement vous premet de mettre les blocs d'index dans un buffer de cache le plus efficacement : il lit les blocs séquentiellement sur le disque.
Sans le pré-chargement, les blocs seront placées dans le cache de clé, au fur et à mesure des besoins des requêtes. Même si les blocs resteront dans le cache, puisqu'il y a de la place pour tous, ils seront pris sur le disque dans un ordre aléatoire, et non séquentiellement.
Pour pré-charger un index dans un cache, utilisez la commande
LOAD INDEX INTO CACHE
. Par exemple, la
commande suivante précharge les index des tables
t1
et t2
:
mysql> LOAD INDEX INTO CACHE t1, t2 IGNORE LEAVES;
+---------+--------------+----------+----------+
| Table | Op | Msg_type | Msg_text |
+---------+--------------+----------+----------+
| test.t1 | preload_keys | status | OK |
| test.t2 | preload_keys | status | OK |
+---------+--------------+----------+----------+
L'option IGNORE LEAVES
fait que les blocs
non-terminaux seuls seront lus dans l'index. Par conséquent,
la commande ci-dessus va charger tous les blocs de l'index de
t1
, mais uniquement les blocs non-terminaux
de t2
.
Si un index a été assigné à un cache de clé en utilisant
la commande CACHE INDEX
, le pré-chargement
place les blocs dans ce cache. Sinon, l'index est chargé dans
le cache par défaut.
This is a translation of the MySQL Reference Manual that can be found at dev.mysql.com. The original Reference Manual is in English, and this translation is not necessarily as up to date as the English version.