vistas una soporta segundo rendimiento rapida por optimizar mas lentas lenta hacer cuello cuantas consultas consulta como botella agilizar mysql database

una - La mejor forma de archivar la base de datos MySQL en vivo



view lenta mysql (6)

Parece que la replicación es la mejor solución para esto. Después de la sincronización inicial, el esclavo recibe actualizaciones a través del registro binario , sin afectar al DB maestro.

Más sobre la replicación.

Tenemos una base de datos MySQL en vivo que es 99% INSERT, alrededor de 100 por segundo. Queremos archivar los datos cada día para que podamos ejecutar consultas sin afectar la base de datos principal y en vivo. Además, una vez que se completa el archivo, queremos borrar la base de datos en vivo.

¿Cuál es la mejor manera de hacerlo sin (si es posible) bloquear INSERT? Usamos INSERT DELAYED para las consultas.


¿Podría mantener dos bases de datos duplicadas? Escribir en uno, mantener el segundo como archivo. Cambie cada, digamos, 24 horas (o el tiempo que considere apropiado). En la base de datos que era el archivo, inserte toda la actividad de hoy. Entonces las dos bases de datos deben coincidir. Use esto como el nuevo db en vivo. Tome la base de datos archivada y haga lo que quiera. Puede hacer una copia de seguridad / extraer / leer todo lo que desee ahora que no se está escribiendo activamente.

Es como una copia reflejada en la que puedes desconectar una unidad para realizar una copia de seguridad, volver a sincronizarla y luego sacar la otra unidad para realizar una copia de seguridad.


http://www.maatkit.org/ tiene mk-archiver

archiva o purga filas de una tabla a otra y / o un archivo. Está diseñado para "mordisquear" de manera eficiente los datos en fragmentos muy pequeños sin interferir con las consultas críticas de procesamiento de transacciones en línea (OLTP). Lo logra con un plan de consulta sin retroceso que mantiene su lugar en la tabla de consulta a consulta, por lo que cada consulta subsiguiente hace muy poco trabajo para encontrar más filas archivables.

Otra alternativa es simplemente crear una nueva tabla de base de datos cada día. MyIsam tiene algunas ventajas para esto, ya que los INSERT hasta el final de la tabla generalmente no se bloquean de todos modos, y existe un tipo de tabla de combinación para volver a estar todos juntos. Varios sitios web registran el tráfico httpd en tablas como esa.

Con Mysql 5.1, también hay tablas de particiones que pueden hacer casi lo mismo.


La replicación de MySQL funcionaría perfectamente para esto.
Maestro -> el servidor en vivo.
Esclavo -> un servidor diferente en la misma red.


Utilizo tablas de particiones mysql y he logrado resultados maravillosos en todos los aspectos.