2012-09-16 13 views

Respuesta

8

"mejor" no significa nada. Necesita expresar sus limitaciones: ¿necesita consistencia? ¿Durabilidad? ¿Alta disponibilidad? ¿Actuación? Una combinación de todas estas propiedades? ¿Puedes permitirte perder tus sesiones? ¿Pueden caber en la memoria? ¿Necesita admitir accesos simultáneos a la misma información?

Sin más contexto, elegiría InnoDB, que es el motor de almacenamiento más equilibrado. Proporciona un rendimiento correcto para aplicaciones OLTP, transacciones ACID, buena fiabilidad y administración de concurrencia razonable. El acceso a las variables de sesión probablemente se hará usando claves primarias, y esta operación es muy eficiente con InnoDB.

Ahora, si el rendimiento es realmente una limitación, prefiero usar un motor NoSQL (es decir, no MySQL). Para almacenar datos de sesión, Redis generalmente hace un muy buen trabajo y es bastante fácil de integrar e implementar.

+0

Excelente respuesta. –

1

El motor de almacenamiento en memoria suena como la mejor opción. Tenga en cuenta que esto es bueno para sesiones temporales.

http://dev.mysql.com/doc/refman/5.0/en/memory-storage-engine.html

+0

¿Esto no será un problema si tengo un equilibrador de carga ya que el motor no escribe los datos en el disco y los servidores no comparten la memoria? Además, si el servidor falla o se reinicia, ¿perderé todos mis datos? – qwertymk

0

Depende de cómo se evalúa "mejor condición":

MyISAM es el más común (muchos paquetes de alojamiento compartido sólo se permiten utilizar MyISAM). además, es bastante limitado en el aspecto de control de relación, por lo que lo configura muy rápido y fácil. si desea la portabilidad y la implementación rápida en múltiples escenarios de alojamiento, MYISAM IS BEST.

InnoDB le permite crear relaciones y salvaguardar la integridad de datos mediante el enlace de claves en diferentes tablas, lo que significa más trabajo pero mucho más diseño de base de datos profesional. muchos paquetes de alojamiento compartido no implementan InnoDB, por lo tanto, al exportar la estructura de la tabla de un entorno a otro, es posible que tenga un trabajo adicional por hacer. si quieres gestión y control de la relación, INNODB ES MEJOR.

En cuanto a la portabilidad de datos, MyISAM aceptará completamente una base de datos InnoDB (porque MyISAM no verifica la integridad de datos: "¿hay un número de usuario 4 en la base de datos cuando inserto un nuevo registro en user_car, por ejemplo"). Si comienza con MyISAM, exportar a una base de datos InnoDB completa será una pesadilla, incluso si sus datos tienen todas las claves, los datos de la tabla deben importarse en el orden correcto (usuario y automóvil, antes de user_car).

MariaDB? nunca, simplemente porque menos gente lo usa, por lo tanto tendrá menos soporte, en comparación con MyISAM e InnoDB.

Final de línea de cubierta: INNODB.

+3

¿Por qué MariaDB nunca? – qwertymk

+1

Si desaconseja fuertemente a Maria, podría valer la pena decir por qué; de lo contrario, ¡esa oración no es muy útil! ¿Edificarías tu publicación y ampliarías un poco ese punto? – halfer

+0

@quertymk y halfer, seguido sus solicitudes y editado. gracias! :) –

Cuestiones relacionadas