Nous avons rencontré un problème où l'interrogation d'une table qui a environ 50 millions de lignes et a une taille d'index de 4 Go (taille de la table d'environ 6 Go) entraîne la permutation de la mémoire du serveur de base de données et ralentit considérablement. Je suis presque sûr que cela a à voir avec le dépassement de la taille de la table temporaire et son échange sur le disque.
Si j'ai mis à niveau mon serveur de base de données de 32 Go de RAM à 64 Go de RAM, je me demande si la base de données MySQL sera en mesure de tirer pleinement parti de cette mémoire supplémentaire et de ne pas échanger. J'ai parcouru quelques-unes des variables (par exemple KEY_BUFFER_SIZE, etc ...), et elles semblent prendre en charge la définition de valeurs supérieures à 64 Go. Cependant, la documentation MySQL indique que tmp_table_size atteint 4 Go maximum.
La mise à niveau de la mémoire en vaut-elle la peine? Est-ce que le problème de "requête sur une grande table" en bénéficierait ou ne serait-il pas utile en raison de la limite de 4 Go? Je sais qu'il existe potentiellement d'autres solutions telles que la restructuration de la table à partitionner de différentes manières, etc ... mais sans rien changer à la table, une mémoire supplémentaire serait-elle utile?
De plus, en général, y a-t-il d'autres variables liées à la mémoire dont MySQL ne pourrait pas tirer parti lors du passage de 32 à 64 Go de RAM?
Nous utilisons Linux 64 bits (Ubuntu) comme serveur de base de données.
Merci, Galen