2008-09-27 8 views

Répondre

5

Si vous utilisez InnoDB, vous pouvez définir innodb_buffer_pool_size être au moins aussi grand que vos données et les index. Ensuite, lorsque vous accédez aux données, celles-ci sont mises en mémoire cache et tous les accès suivants se font par la mémoire. Si vous souhaitez pré-mettre en mémoire cache les données, vous pouvez effectuer certaines de vos requêtes courantes, ou des analyses de table/index complètes pour forcer le chargement de toutes les données en mémoire.

Il existe une option init-file pour mysqld qui permet au serveur d'exécuter automatiquement certaines commandes au démarrage, où vous pouvez inclure les requêtes de pré-mise en cache à exécuter. Gardez à l'esprit que vous ne voulez pas manquer de mémoire, alors soyez prudent lorsque vous définissez innodb_buffer_pool_size trop grand.

+0

Eh bien. Mais comment puis-je savoir mon chargé en mémoire. Y a-t-il des commandes à découvrir? – zczhuohuo

2

Eh bien, une option est d'utiliser un ramdrive .. bien que ce ne soit pas permanent.

http://www.linuxforums.org/forum/misc/670-how-create-ram-drive-linux.html

+0

En fait, je cherchais plutôt un moyen pour que mysql le charge en RAM lui-même - bien que ce soit une alternative interessante, qui devrait être lancée au démarrage. – Thomaschaaf

+0

Théoriquement, le système d'exploitation pourrait encore utiliser le fichier d'échange sur le disque physique. –

0

(Juste pour l'exhaustivité,) Vous pouvez utiliser HEAP comme moteur de table. Mais gardez à l'esprit que toutes les données que vous mettez dans une table HEAP ont disparu lorsque vous redémarrez le serveur.

0

Les tables en RAM sont très rapides.

Vous pouvez modifier vos tables existantes en modifiant leur moteur de stockage. Mais faites une sauvegarde si vous voulez utiliser les données après le redémarrage du serveur.

ALTER TABLE test MOTEUR = MÉMOIRE; Gardez à l'esprit que les tables MEMORY ne peuvent pas contenir de colonnes BLOB ou TEXT et que la taille des données et des index est limitée à la mémoire disponible.

Questions connexes