sql >> Base de Datos >  >> RDS >> Mysql

omitir la copia a la tabla tmp en el disco mysql

Hay dos cosas que puede hacer para disminuir el impacto de esto

OPCIÓN #1:Aumentar las variables tmp_table_size y/o max_heap_table_size

Estas opciones determinarán qué tan grande puede ser una tabla temporal en memoria antes de que se considere demasiado grande y luego pase a las páginas del disco como una tabla MyISAM temporal. Cuanto mayores sean estos valores, es menos probable que obtenga 'copiar a la tabla tmp en el disco'. Por favor, asegúrese de que su servidor tenga suficiente RAM y máx_conexiones está moderadamente configurado en caso de que una única conexión de base de datos necesite mucha RAM para sus propias tablas temporales.

OPCIÓN #2:Usar un disco RAM para tablas tmp

Debería poder configurar un disco RAM en Linux y luego configurar tmpdir en mysql para que sea la carpeta que tiene montado el disco RAM.

Para empezar, configure un disco RAM en el sistema operativo

Cree una carpeta en Linux llamada /var/tmpfs

mkdir /var/tmpfs

A continuación, agregue esta línea a /etc/fstab (por ejemplo, si desea un disco RAM de 16 GB)

none                    /var/tmpfs              tmpfs   defaults,size=16g        1 2

y reinicie el servidor.

Nota:es posible crear un disco RAM sin reiniciar. Solo recuerde agregar la línea mencionada anteriormente a /etc/fstab para tener el disco RAM después de reiniciar el servidor.

Ahora para MySQL:

Agregue esta línea en /etc/my.cnf

[mysqld]
tmpdir=/var/tmpfs

y reinicie mysql.

OPCIÓN n.° 3:Obtenga la tabla tmp en el disco RAM lo antes posible (suponiendo que aplique la OPCIÓN n.° 2 primero)

Es posible que desee forzar las tablas tmp en el disco RAM lo más rápido posible para que MySQL no haga girar sus ruedas migrando grandes tablas tmp en memoria a un disco RAM. Simplemente agregue esto a /etc/my.cnf:

[mysqld]
tmpdir=/var/tmpfs
tmp_table_size=2K

y reinicie mysql. Esto hará que incluso la tabla temporal más pequeña se cree en el disco RAM. Puede ejecutar periódicamente ls -l /var/tmpfs para ver cómo van y vienen las tablas temporales.

Pruébalo !!!

ADVERTENCIA

Si no ve nada más que tablas temporales en /var/tmpfs 24/7, esto podría afectar la funcionalidad/el rendimiento del sistema operativo. Para asegurarse de que /var/tmpfs no se sobrellene, busque ajustar sus consultas. Una vez que lo haga, debería ver menos tablas tmp materializándose en /var/tmpfs.