2009-12-28 13 views
9

Obviamente, ambos tienen sus beneficios. MyISAM es rápido, pero se puede romper fácilmente, InnoDB es lento pero es más estable gracias a las transacciones y las claves externas. Entonces podría ser bueno mezclar ambos motores en una base de datos. Si eso es posible?¿Puedo usar tablas InnoDB y MyISAM en UNA base de datos?

+0

bien, pruébelo :) – Bozho

Respuesta

17

RECUERDA! ¡Está bien mezclar tipos de tabla en la misma base de datos! De hecho, es recomendado y frecuentemente requerido. Sin embargo, es importante tener en cuenta que si tiene problemas de rendimiento al unir los dos tipos, intente convertir uno al otro y vea si eso lo soluciona. Este problema no ocurre a menudo pero se ha informado.

Tomado de MySQL - InnoDB vs MyISAM

+1

está bien para mezclar tipos de tabla tal como lo dijiste. pero se deben evitar los tipos de tablas de mezcla dentro de las transacciones. –

5

Claro, eso es posible.

CREATE TABLE MyISAM_tbl(
    .... 
)ENGINE=MyISAM; 

CREATE TABLE InnoDB_tbl (
    .... 
)ENGINE=InnoDB; 

hago esto todo el tiempo, porque prefiero InnoDB para las claves ajenas, pero a veces necesito MyISAM para la búsqueda de texto completo. Nunca tuve un problema

1

En una palabra sí. (CREATE TABLE le permite especificar el tipo de motor.)

Sin embargo, debe tener cuidado al consultar en varios tipos de tablas. (Por ejemplo, no puede aprovechar las claves externas en MyISAM y no puede comprometer una transacción que afecte las tablas MyISAM, etc.)

En esencia, sospecho que este podría no ser el mejor enfoque a seguir. (A menos que solo necesite transacciones para un conjunto definido de tablas segmentadas del resto de su base de datos e InnoDB es demasiado lento, obtener un servidor de base de datos más rápido puede resultar menos doloroso.)

Cuestiones relacionadas