Tenemos un conjunto de tablas que contienen los meta datos a nivel de organizaciones, organización de usuarios, organización de los departamentos, etc. Todos estos de la tabla va a ser leído pesado con muy pocas operaciones de escritura. También, el tamaño de la tabla sería bastante pequeña (número máximo de registros que sería de alrededor de 30K – 40K)

Otro conjunto de tabla de almacén de datos OLTP como proyecto de ley de transacciones de acciones de usuario, etc, que van a ser de lectura y escritura pesada. Estas tablas podrían ser muy numeroso (alrededor de 30 Millones de registros por tabla)

Para el primer conjunto de tablas en las que estamos planeando ir con MyISAM y para los segundos con el motor InnoDb. Muchas de nuestras características requeriría también se UNE en las mesas de estos 2 juegos.

Hay problemas de rendimiento en unirse a tablas MyISAM con tablas InnoDB? También, hay otros posibles problemas (db copias de seguridad, optimización, etc) se podría ejecutar en con este tipo de diseño?

Cualquier comentario sería muy apreciada.

InformationsquelleAutor Pigol | 2011-03-29

2 Comentarios

  1. 47

    Lo que salta inmediatamente a mí es MyISAM.

    ASPECTO #1 : La combinación en sí

    Siempre hay combinaciones que involucran MyISAM y InnoDB, tablas InnoDB terminará teniendo bloqueo de tabla de comportamiento en lugar de bloqueo de nivel de fila porque de MyISAM la participación en la consulta y MVCC no se puede aplicar a la MyISAM datos. MVCC no puede aplicarse incluso a InnoDB en algunos casos.

    ASPECTO #2 : MyISAM la Participación de

    Desde otra perspectiva, si alguna de las tablas MyISAM se actualizan a través de las Inserciones, Actualizaciones o Eliminaciones, las tablas MyISAM involucrados en una consulta de combinación podría ser bloqueado de otras DB y las Conexiones de la consulta de combinación tiene que esperar hasta que las tablas MyISAM se puede leer. Por desgracia, si hay una mezcla de InnoDB y MyISAM en la consulta de combinación, las tablas InnoDB tendría que experimentar un bloqueo intermitente como su MyISAM socios en la combinación de la consulta debido a que se llevan a cabo de la escritura.

    Tenga en cuenta que MVCC todavía permiso de LECTURA no confirmada y REPETIBLE-transacciones de LECTURA que funciona muy bien y dejar algunos puntos de vista de los datos disponibles para otras transacciones. No puedo decir lo mismo de LECTURA confirmada y SERIALIZABLE.

    ASPECTO #3 : Optimizador de Consultas

    MySQL se basa en el índice de cardinalidad para determinar un optimizado EXPLICAR el plan. Índice de cardinalidad es estable en tablas MyISAM hasta una gran cantidad de Inserciones, Actualizaciones y Eliminaciones pasar a la mesa, por lo que se podría ejecutar periódicamente OPTIMIZE TABLE contra las tablas MyISAM. InnoDB índice de cardinalidad NUNCA es ESTABLE !!! Si ejecuta SHOW INDEXES FROM *innodbtable*;, verá el índice de cardinalidad cambiar cada vez que se ejecute el comando. Eso es porque InnoDB va a hacer inmersiones en el índice para estimar la cardinalidad. Incluso si se ejecuta OPTIMIZE TABLE contra una tabla InnoDB, que sólo desfragmentar la tabla. OPTIMIZE TABLE se ejecutará ANALYZE TABLE internamente para generar estadísticas de índice contra la mesa. Que trabaja para MyISAM. InnoDB ignora.

    Mi consejo para usted es ir a por todas y convertir todo a InnoDB y optimizar su configuración en consecuencia.

    ACTUALIZACIÓN 2012-12-18 15:56 EDT

    Lo creas o no, hay todavía un billete abierto en InnoDB/MyISAM se unieron durante un SELECT FOR UPDATE. Si la lees, es la síntesis de la resolución de la siguiente manera : ¡NO LO HAGA !!!.

    • Gracias por la explicación detallada Rolando. Si de tablas InnoDb también sufren de bloqueos a nivel de tabla, mientras que la unión con tablas MyISAM, luego de que tendría un impacto en nuestra OLTP operaciones de manera significativa. Vamos a seguir adelante con InnoDB sólo. Gracias de nuevo.
    • +1 para proporcionar la actualización que era bueno saberlo.
  2. 0

    No creo que la gestión de transacciones funcionará correctamente o en absoluto, ya MyISAM no se manejan.

Dejar respuesta

Please enter your comment!
Please enter your name here