En esta sección, proporcionamos un listado de las limitaciones conocidas en versiones de MySQL Cluster en las series 4.1.x comparadas con características disponibles al usar los motores MyISAM e InnoDB. Actualmente, no hay planes para arreglarlas en próximas versiones 4.1; sin embargo, intentaremos proporcionar soluciones para éstas en MySQL 5.0 y versiones posteriores. Si chequea la categoría de Cluster en la base de datos de bug de MySQL en http://bugs.mysql.com, encontrará bugs conocidos que (si están marcados como 4.1) intentaremos arreglar en próximas versiones de MySQL 4.1.
No cumplimiento de la sintaxis (resultando en errores al ejecutar aplicaciones existentes):
No se soportan todos los conjuntos de caracteres y colaciones.
No hay índices prefijo; sólo los campos completos pueden indexarse.
Los índices de texto no están soportados.
Tipos de datos geométricos (WKT y WKB) no soportados.
No cumplimiento con límites/comportamiento (puede resultar en errores al ejecutar aplicaciones existentes):
No hay rollback parcial de transacciones. Una clave duplicada o error similar resultará en un rollback de la transacción completa.
Existen un número de límites de hard que son configurables, pero la memoria disponible en el cluster delimite al límite. Consulte la lista completa de parámetros de configuración en Sección 16.4.4, “Fichero de configuración”. La mayoría de parámetros de configuración pueden actualizarse en línea. Estos límites de hard incluyen:
                  Tamaño de memoria de base de datos y de memoria
                  índice (DataMemory y
                  IndexMemory, respectivamente).
                
                  El máximo número de transacciones que pueden
                  ejecutarse se delimita mediante el parámetro
                  MaxNoOfConcurrentOperations. Tenga
                  en cuenta que la cantidad de carga , TRUNCATE
                  TABLE, y ALTER TABLE se
                  tratan como casos especiales mediante ejecución de
                  transacciones múltiples, y por lo tanto no están
                  sujetas a esta limitación.
                
                  Los distintos límites relacionados con tablas e
                  índices. Por ejemplo, el número máximo de índices
                  ordenados por tabla lo determina
                  MaxNoOfOrderedIndexes.
                
Los nombres de bases de datos, tablas y atributos no pueden ser tan largos en NDB como con otros motores. Los nombres de atributos se truncan a 31 caracteres, y si no son únicos tras truncarse da lugar a error. Los nombres de base de datos y de tabla pueden tener en total un máximo de 122 caracteres. (Esto es, la longitud máxima para un nombre de tabla en un cluster NDB es 122 caracteres menos el número de caracteres en el nombre de la base de datos de la tabla.)
              En MySQL 4.1 y 5.0, todos los registros de tabla de
              Cluster son de longitud fija. Esto significa (por ejemplo)
              que si una tabla tiene uno o más campos
              VARCHAR conteniendo sólo valores
              pequeños, serán necesarios más memoria y espacio de
              disco al usar el motor NDB que el que sería para la misma
              tabla y datos usando el motor MyISAM. Estamos trabajando
              para rectificar este punto en MySQL 5.1.
            
El máximo número de objetos de metadatos está limitado a 1600, incluyendo tablas de base de datos, tablas de sistema, índices y BLOBs. Estamos trabajando para incrementar esto a aproximadamente 20k en MySQL 5.0.
El máximo número de atributos por tabla está limitado a 128.
El tamaño máximo permitido de registro es 8k, sin incluir datos almacenados en columnas BLOB. Esperamos incrementar esto a aproximadamente 32k en MySQL 5.1.
El máximo número de atributos por clave es 32.
Características no soportadas (no causan errores, pero no están soportadas o forzadas):
El constructor de clave primaria se ignora, como en tablas MyISAM .
Los puntos de chequeo y rollbacks se ignoran como en MyISAM.
Rendimiento y temas relacionados con limitaciones :
La caché de consulta está desactivada, ya que no está invalidad si ocurre una actualización en distintos servidores MySQL.
Hay temas de rendimiento de consulta debido a acceso secuencial al motor NDB; también es relativamente más costoso hacer varios escaneos de rango que con MyISAM o InnoDB.
              La estadística Records in range no
              está soportada, resultando en planes de consulta no
              óptimos en algunos casos. Use USE
              INDEX o FORCE INDEX como
              solución.
            
              Índices hash únicos creados con USING
              HASH no pueden usarse para acceder a una tabla
              si NULL se da como parte de la clave.
            
Caracterísitcas no incluídas:
              El único nivel de isolación soportado es
              READ_COMMITTED. (InnoDB soporta
              READ_COMMITTED,
              REPEATABLE_READ, y
              SERIALIZABLE.) Consulte
              Sección 16.6.4.5, “Resolver problemas con copias de seguridad”
              para información sobre cómo puede afectar a las copias
              de seguridad y restauración de bases de datos Cluster.
            
Commits no durables en disco. Los commits se replican, pero no hay garantía que los logs se vuelquen a disco en un commit.
Problemas relacionados con múltiples MySQL servers (no relacionados con MyISAM o InnoDB):
              ALTER TABLE no es completamente
              bloqueante cuando se ejecutan múltiples MySQL servers (no
              hay bloqueo de tabla distribuído).
            
La replicación MySQL no funcionará correctamente si las acutalizaciones se hacen en múltiples MySQL servers. Sin embargo, si el esquema de particionado de la base de datos es en nivel de aplicación, y no hay transacciones entre estas particiones, la replicación puede funcionar.
              El autodescubrimiento de bases de datos no se soporta para
              múltiples MySQL servers accediendo al mismo MySQL
              Cluster. Sin embargo, el autodescubrimiento de tablas se
              soporta en estos casos. Lo que significa que si tras una
              base de datos llamada db_name
              se crea o importa usando un MySQL server, debe ejecutar un
              CREATE DATABASE
               en cada
              MySQL server adicional que accede al mismo MySQL Cluster.
              (Desde MySQL 5.0.2 puede usar db_name;CREATE SCHEMA
              .) Una vez
              hecho esto para un MySQL server dado, el servidor debería
              ser capaz de detectar las tablas de la base de datos sin
              error.
            db_name;
Temas exclusivos de MySQL Cluster (no relacionados con MyISAM o InnoDB):
Todas las máquinsa usadas en el cluster deben tener la misma arquitectura; esto es, todas las máquinas con nodos deben ser o big-endian o little-endian, y no puede usar una mezcla. Por ejemplo, no puede tener un nodo de administración ejecutándose en un PPC con un nodo datos en una máquina x86 . Esta restricción no se aplica a máquinas que ejecuten sólo mysql u otros clientes que puedan estar accediendo a los nodos SQL del cluster.
              No es posible hacer cambios del esquema en línea tales
              como los realizados usando ALTER TABLE
              o CREATE INDEX, ya que NDB Cluster no
              soporta autodescubrimiento de tales cambios. (Sin embargo,
              puede importar o crear una tabla que use distintos
              motores, convertirlos a NDB usando ALTER TABLE
              . En tales casos, necesitará
              ejecutar un comando tbl_name
              ENGINE=NDBCLUSTER;FLUSH TABLES para
              forzar al cluster a recoger los cambios.)
            
Añadir o eliminar nodos en línea no es posible (el cluster debe reiniciarse en tales casos).
Cuando se usan múltiples servidores de administración debe dar a los nodos explícitamente los IDs en los connectstrings ya que la reserva automática de IDs de nodo no funciona entre múltiples servidores de administración.
Usando varios servidores de administración debe tener cuidado de tener la misma configuración para todos los servidores de administración. El cluster no hace chequeos para ello.
El número máximo de nodos de datos es 48.
El número máximo de nodos en MySQL Cluster es 63. Este número incluye todos los MySQL Servers (nodos SQL), nodos de datos, y servidores de administración.
Este listado trata de ser completo respecto al conjunto de condiciones del principio de esta sección. Puede reportar cualquier discrepancia que encuentre a la base de datos de bugs de MySQL en http://bugs.mysql.com/. Si no planeamos arreglar el problema n MySQL 4.1, lo añadiremos a la lista anterior.
Ésta es una traducción del manual de referencia de MySQL, que puede encontrarse en dev.mysql.com. El manual de referencia original de MySQL está escrito en inglés, y esta traducción no necesariamente está tan actualizada como la versión original. Para cualquier sugerencia sobre la traducción y para señalar errores de cualquier tipo, no dude en dirigirse a mysql-es@vespito.com.

