Miré en my.ini y vi varias configuraciones predeterminadas. Mi base de datos se ejecuta en una sola PC independiente. Quiero optimizar el rendimiento de InnoDB y MySQL en general para el rendimiento. No hay restricción de espacio en disco. ¿Qué configuración predeterminada debo cambiar para optimizar para un mejor rendimiento, confiabilidad y posibles copias de seguridad en un punto en el tiempo [alta disponibilidad].
Editado
En la actualidad, cada vez que ejecuto "Optimizar tablas" a través de Mantenimiento en MySQL Administrator, muestra:
La tabla no admite la optimización, sino que recrea y analiza
en todas las mesas. Todas mis tablas son InnoDB, pero ¿por qué no son compatibles con Optimize?
Respuestas:
La forma de sintonizar InnoDB se centra en
Aquí hay una fórmula que he usado durante los últimos 5 años para calcular el InnoDB Buffer Pool basado en el espacio en disco utilizado por los datos de InnoDB y las páginas de índice :
Por supuesto, dije una función de memoria disponible y espacio en disco utilizado actualmente por InnoDB. A partir de aquí, solo use el sentido común. ¡El número recomendado de la consulta anterior NO DEBE SUPERAR EL 75% DE LA RAM INSTALADA! Esa es la regla general más simple para dimensionar el InnoDB Buffer Pool.
También debe establecer innodb_flush_method en O_DIRECT ya que proporcionará escrituras síncronas estables de InnoDB. También he escrito una publicación sobre cómo optimizar el almacenamiento en disco para InnoDB .
Con respecto al mensaje, la tabla no admite la optimización, al recrear + analizar en su lugar , la razón por la que recibe ese mensaje de error es el hecho de que el motor de almacenamiento es InnoDB. Mecánicamente, OPTIMIZE TABLE simplemente copia la tabla a una tabla temporal y realiza ANALYZE TABLE .
En realidad, ANALYZE TABLE contra InnoDB es completamente inútil. Incluso si ejecutó ANALYZE TABLE en una tabla de InnoDB, el motor de almacenamiento de InnoDB realiza inmersiones en el índice para aproximaciones de cardinalidad una y otra vez, lo que destruye las estadísticas que acaba de compilar. De hecho, Percona realizó algunas pruebas en la TABLA DE ANÁLISIS y llegó a la misma conclusión también .
Aquí hay otras publicaciones que hice durante el año sobre InnoDB Tuning
fuente
Aquí hay un artículo más antiguo sobre las variables importantes para la "sintonía gruesa". El más importante probablemente sea
innodb_buffer_pool_size
Recomiendo encarecidamente actualizar a MySQL 5.5 (si aún no lo está ejecutando). Hicieron bastantes cambios en el rendimiento de InnoDB. Incluso proporcionan una sección general sobre cómo optimizar para InnoDB ahora que es el motor predeterminado: http://dev.mysql.com/doc/refman/5.5/en/optimizing-innodb.html
En cuanto a las copias de seguridad en un punto en el tiempo, querrás mirar el registro binario . Lo básico para habilitar esto es establecer la
log-bin
variable en su my.cnffuente
Optimizar viene en muchos colores.
Creo que su primer paso debería ser decidir qué significa "optimizar" para usted. Para algunas personas, significa "consultas SELECT más rápidas". Para otros significa "el mejor equilibrio entre el rendimiento SELECCIONAR y el rendimiento INSERTAR". Para otros, "el rendimiento INSERT más rápido".
Debe decidir cuáles son sus criterios y cómo va a saber si sus cambios ayudan antes de comenzar a ajustar.
Luego ponga sus archivos de configuración y opciones de inicio bajo control de versión, y comience a experimentar. Documente el consejo de quién sigue y dónde lo encontró. (El asesoramiento cambia con el tiempo, a medida que cambia la base de código y el hardware). Ponga también esos documentos bajo control de versión.
fuente