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

Mantener datos más datos de índice en la memoria - InnoDB vs. MyISAM

  • No MyISAM no tiene caché de datos de propósito general. Esto está documentado en la descripción "key_buffer_size" de la documentación oficial :This is because MySQL relies on the operating system to perform file system caching for data reads, so you must leave some room for the file system cache.

Los sistemas operativos modernos, especialmente Linux, tienden a tener subsistemas de memoria virtual muy inteligentes que mantendrán los archivos a los que se accede con frecuencia en la memoria caché de la página, por lo que la E/S del disco se mantiene al mínimo cuando el conjunto de trabajo cabe en la memoria disponible.

  • Entonces, para responder a su segunda pregunta:nunca.

Es importante no caer en el "sobredimensionamiento del búfer" también para las diversas variables de myisam, como read_buffer_size, read_rnd_buffer_size, sort_buffer_size, join_buffer_size, etc., ya que algunas se asignan dinámicamente, por lo que más grande no siempre significa más rápido, y a veces incluso puede ser más lento. vea esta publicación en mysqlperformanceblog para un caso muy interesante.

Si está en 5.1 en una plataforma posix, es posible que desee comparar myisam_use_mmap en su carga de trabajo, se supone que ayuda a los casos de alta contención al reducir la cantidad de llamadas malloc().