¿Cómo puedo estar seguro de que toda la base de datos MySQL está cargada en la memoria?

StackOverflow https://stackoverflow.com/questions/144210

  •  02-07-2019
  •  | 
  •  

Pregunta

Estoy ejecutando un servidor mysql. Me gustaría asegurarme de alguna manera de que toda la base de datos esté cargada en el ram, ya que escuché que sería mucho más rápido.

¿Es esto cierto? ¿Y cómo lo vertifico?

¿Fue útil?

Solución

Si está utilizando InnoDB, puede configurar innodb_buffer_pool_size para que sea al menos tan grande como sus datos e índices. Luego, cuando acceda a los datos, se almacenará en la memoria caché y todos los accesos posteriores se realizarán a través de la memoria.

Si desea almacenar en caché previamente los datos, puede hacer algunas de sus consultas comunes, o exploraciones completas de tablas / índices para obligarlo a cargar todos los datos en la memoria.

Hay una opción de archivo de inicio para mysqld que puede hacer que el servidor ejecute automáticamente algunos comandos en el inicio, donde podría incluir las consultas de caché previo a ejecutar.

Ten en cuenta que no quieres quedarte sin memoria, así que ten cuidado al configurar innodb_buffer_pool_size demasiado grande.

Otros consejos

Bueno, una opción es usar un ramdrive ... aunque no es permanente.

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

(Solo para completar,) Podría usar HEAP como motor de mesa. Pero tenga en cuenta que los datos que coloque en una tabla HEAP desaparecen cuando reinicia el servidor.

Las tablas en la memoria RAM son muy rápidas.

Puedes cambiar tus tablas existentes modificando su motor de almacenamiento. Pero haga una copia de seguridad si desea utilizar los datos después de reiniciar un servidor.

ALTER TABLE test ENGINE = MEMORY;

Tenga en cuenta que las tablas de MEMORIA no pueden contener columnas BLOB o TEXT y que los datos y el tamaño del índice están limitados a la memoria disponible.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top