¿Qué debo saber antes de poner en funcionamiento una base de datos InnoDB?

10

Qué cosas debe saber y hacer un administrador de servidor o DB antes de poner a disposición una base de datos InnoDB.

Estoy pensando en cosas como establecer valores correctos para innodb_buffer_pool_sizeyinnodb_log_file_size

Entonces, ¿qué cosas simples podrías olvidar configurar que harían que la aplicación que usa la base de datos funcione menos de lo óptimo?

Jacco
fuente

Respuestas:

14

Hay algunas opciones de configuración que debe considerar antes de comenzar.

Mientras no esté usando myisam en absoluto, puede asignar de forma segura casi todo (mantener lo suficiente para que su sistema operativo se ejecute cómodamente y lo suficiente para su max_connections) memoria innodb_buffer_pool. Lo bueno de InnoDB es que maneja casi todas las cosas de la memoria por sí solo, no es necesario separar cosas como cachés de consultas, memorias intermedias de claves, etc.

Le recomendaría que lo habilite innodb_file_per_table, simplemente porque hace que sea mucho más fácil simplemente explorar el sistema de archivos y ver cuánto espacio necesitan las diferentes tablas y bases de datos. Aún necesitará un archivo genérico de ibdata para uso interno de InnoDB, pero puede definirlo como 10M:autoextend. No es necesario definir muchos archivos de datos innodb diferentes con tamaños asignados previamente.

innodb_log_file_sizey innodb_log_buffer_sizecombinado debe ser más grande que diez veces su objeto blob más grande si tiene muchos grandes. Si no lo hace (y no debería [ 1 , 2 ]), realmente no hay necesidad de molestarse mucho con eso. Consulte el Blog de rendimiento de MySQL para obtener un informe detallado sobre cómo calcular.

Y cuando haya ejecutado su MySQL por un tiempo, verifique su configuración con MySQLTuner o MySQL Tuning Primer .

Para un informe más detallado, intente mysqlreport , y para monitoreo en vivo, revise mytop .

Nils-Anders Nøttseter
fuente
Una cosa para recordar acerca de innodb_file_per_table es que los métodos utilizados para recuperar espacio en disco son diferentes. Con los archivos ibdata puede recuperar espacio en el espacio de tabla eliminando el final de sus tablas. Con archivos de tabla individuales, el espacio no se recupera mediante la eliminación, uno tiene que reconstruir la tabla con la tabla de optimización para devolver el espacio al sistema de archivos. Optimizar bloquea la tabla y, por lo tanto, puede causar tiempo de inactividad en su aplicación.
mtinberg
2

Una pequeña "sorpresa" para mí fue que innodb usa, por defecto, un archivo para todas las bases de datos / tablas. A diferencia de las tablas MyISAM que usan un directorio por base de datos y archivos por tabla / índice de tabla.

Eso podría importar si está acostumbrado a reducir los archivos físicos en una tabla (optimizar la tabla xxx)


fuente