Nos hemos encontrado con un problema en el que consultar una tabla que tiene aproximadamente 50 millones de filas y tiene un tamaño de índice de 4 GB (tamaño de tabla de aproximadamente 6 GB) da como resultado que el servidor de la base de datos intercambie memoria y disminuya drásticamente. Estoy bastante seguro de que esto tiene que ver con que se haya excedido el tamaño de la tabla temporal y se haya cambiado al disco.
Si actualicé mi servidor de base de datos de 32 GB de RAM a 64 GB de RAM, me pregunto si la base de datos MySQL podrá aprovechar al máximo esta memoria adicional y no intercambiar. He revisado algunas de las variables (por ejemplo, KEY_BUFFER_SIZE, etc.), y parece que admiten valores de configuración de más de 64 GB. Sin embargo, la documentación de MySQL dice que tmp_table_size alcanza un máximo de 4 GB.
Entonces, ¿valdría la pena la actualización de memoria? ¿Se beneficiaría el problema de "consulta de tabla grande" o no ayudaría debido al límite de 4 GB? Sé que hay potencialmente otras soluciones, como reestructurar la tabla para que se particione de diferentes maneras, etc., pero sin cambiar nada de la tabla, ¿ayudaría la memoria adicional?
Además, en general, ¿hay otras variables relacionadas con la memoria que MySQL no podría aprovechar al pasar de 32 a 64 GB de RAM?
Estamos utilizando Linux de 64 bits (Ubuntu) como nuestro servidor de base de datos.
Gracias Galen
¿Quizás valdría la pena dedicar un poco más de tiempo y esfuerzo a investigar qué está causando el intercambio del sistema antes de gastar dinero en la memoria?
32 GB de memoria dejan mucha memoria disponible incluso después de cargar toda la tabla, el índice y la tabla temporal máxima en la memoria. Una búsqueda rápida sacó a la luz estos dos documentos que podrían ser relevantes:
fuente
Si cree que se debe a que se está creando una tabla temporal muy grande, puede considerar formas de mejorar la consulta para evitar tablas temporales.
Puede publicar en Stackoverflow una publicación que contenga el esquema, la consulta, el plan de explicación y algunos detalles del problema.
fuente