Pregunta

Tengo una sola base de datos de alrededor de 4,5 GB se ejecuta en un servidor con 8 GB de RAM. La gran mayoría de las mesas son myisam (alrededor de 4.3 GB), pero estoy pronto va a convertir algunos de ellos a InnoDB. (Va a ser un proceso lento, centrándose en las mayoría de las tablas de escritura intensiva en un primer momento).

¿Hay algo mal con el funcionamiento de un servidor dedicado donde existen ambos tipos de motores de almacenamiento?

¿Fue útil?

Solución

No hay nada mal con el uso de múltiples motores de almacenamiento en la misma máquina física, siempre y cuando usted entienda los pros y los contras de cada uno. Hay consideraciones de rendimiento, las limitaciones de funcionalidad y casos de uso para todos los tipos de almacenamiento plug-in.

Por ejemplo, si usted tiene una pequeña mesa que es 90% de escrituras, puede elegir MyISAM. Si los datos se pueden regenerar fácilmente y es una pequeña mesa, por ejemplo para poner en cola, es posible que elija memoria. Si usted tiene una tabla que es el 90% lee, y los datos tiene que estar allí cuando usted lo busca, entonces usted probablemente elegir un motor de almacenamiento que las transacciones soportes y atomicidad configurable, como InnoDB. Si desea que la accesibilidad a través del sistema de archivos w / o dañar los datos, puede elegir CSV.

Sin embargo, se puede utilizar de forma segura múltiples motores de almacenamiento dentro del mismo esquema, así como el anfitrión físico.

Permítanme señalar sin embargo, que sus amortiguadores juegan un papel en todo este lío. Si utiliza MyISAM e InnoDB, tendrá que tener cuidado de que su key_buffer y innodb_buffer_pool no contienden. Esto tomará una planificación cuidadosa de su parte, pero eso es lo que hacemos.

Otros consejos

No te puedo decir si esto es una práctica común. Que puedo decir de mi propia experiencia.

Siempre utilizar la mejor herramienta para el trabajo, por lo mezclo motores de todo el tiempo. La mayoría de mis proyectos utilizan MyISAM como el motor predeterminado.

Cuando necesito características especiales sólo disponibles en InnoDB, voy por ella.

Cuando una tabla es de sólo lectura en su mayoría, elijo motor de Archivo antes de que pudiera parpadear.

A sabiendas de que la máquina servidor tiene suficiente memoria, todos los datos son mis temp tienda en tablas de montón.

vi en el MyISAM más allá de algunas ralentizaciones mezcla y InnoDB, pero esto no es un problema específico de MySQL. Es un problema de diseño no aparente cuando se utiliza un solo motor. En realidad utilizando el motor equivocado causa más desaceleración no importa si es sólo MyISAM, InnoDB solo o una mezcla de ambos. Es difícil definir una fórmula para saber cuando la desaceleración sucedería. Sólo las pruebas reales podrían decir a usted.

Por supuesto, usted podría no preservar la integridad y consistencia de mezcla InnoDB y MyISAM en una consulta única.

I try to avoid mixing MyISAM and InnoDB tables in the same database, but this is for sanity rather than practical reasons. However, I find it useful to have a database with MyISAM tables for fulltext search so I can run that on sites. Keeping it in a separate database with a foreign key for each entry makes it easy for any other developers working on the DB to see what's going on.

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