Je suis curieux de savoir pourquoi vous voulez stocker toute la table en mémoire. Je suppose que vous n'êtes pas. La chose la plus importante pour moi est si vos requêtes fonctionnent bien et si vous êtes lié à l'accès au disque. Il est également possible que le système d'exploitation ait mis en cache les blocs de disque dont vous avez besoin s'il y a de la mémoire disponible. Dans ce cas, même si MySQL ne l'a pas en mémoire, le système d'exploitation le fera. Si vos requêtes ne fonctionnent pas bien, et vous pouvez le faire, je recommande fortement d'ajouter plus de mémoire si vous voulez tout dans la RAM. Si vous avez des ralentissements, il est plus probable que vous êtes en conflit.
show table status
vous montrera certaines des informations.
Si vous obtenez le serveur de statistiques IO/tampon/cache de
show server status
puis exécutez une requête qui nécessite chaque ligne pour accéder (par exemple additionner les valeurs non vides de chaque ligne en utilisant une colonne qui est non indexé) et vérifiez si des E/S se sont produites.
Je doute que vous mettiez en mémoire tout le contenu de la mémoire avec seulement 70 Mo. Vous devez sortir beaucoup de tampons de mémoire cache, temporaire et d'index de ce total.
Jacob
Je ne suppose pas que "utiliser le moteur' MEMORY' "est une réponse acceptable? –
Je n'utilise pas le moteur MEMORY car si le serveur tombe en panne, je ne veux pas perdre toutes mes données. C'est pourquoi j'utilise INNODB, avec une taille de valeur RAM supérieure à celle de mon jeu de données. (Bonne question cependant) – HankT