2009-12-30 19 views
9

Quiero implementar NDB Cluster para MySQL Cluster 6. Quiero hacerlo para una estructura de datos muy grande con un mínimo de 2 millones de registros.¿Cuáles son las limitaciones de implementar MySQL NDB Cluster?

Lo que quiero saber es si existen limitaciones para implementar el clúster NDB. Por ejemplo, el tamaño de RAM, el número de bases de datos o el tamaño de la base de datos para el clúster NDB.

Respuesta

15

2 millones de bases de datos? Supongo que quisiste decir "filas".

De todos modos, con respecto a las limitaciones: una de las cosas más importantes a tener en cuenta es que NDB/MySQL Cluster no es una base de datos de propósito general. En particular, las operaciones de unión, pero también las subconsultas y operaciones de rango (consultas como: pedidos creados entre ahora y una semana atrás), pueden ser considerablemente más lentos de lo que cabría esperar. Esto se debe en parte al hecho de que los datos se distribuyen en múltiples nodos. Aunque se han realizado algunas mejoras, el rendimiento de Join puede ser muy decepcionante.

Por otro lado, si necesita hacer frente a muchas transacciones concurrentes (preferiblemente pequeñas) (por lo general, actualizaciones de fila única/inserciones/eliminar por clave principal) y maneja para mantener todos sus datos en la memoria, entonces puede ser una solución muy escalable y de rendimiento.

Debe preguntarse por qué quiere el clúster. Si simplemente quiere su base de datos ordinaria que tiene ahora, excepto con una disponibilidad adicional del 99,999%, entonces puede sentirse decepcionado. Ciertamente, el clúster de MySQL puede proporcionarle una gran disponibilidad y tiempo de actividad, pero la carga de trabajo de su aplicación puede no ser muy adecuada para que el clúster de thtings sea bueno. Además, es posible que pueda utilizar otra solución de alta disponibilidad para aumentar el tiempo de actividad de su base de datos tradicional.

BTW - aquí está una lista de limitaciones como por el doc: http://dev.mysql.com/doc/refman/5.1/en/mysql-cluster-limitations.html

Pero hagas lo que hagas, trata a cabo clúster, ver si es bueno para usted. El clúster de MySQL no es "MySQL + 5 nueves". Lo descubrirás cuando lo intentes.

1

El clúster NDB viene con dos tipos de opciones de almacenamiento.

1.In Memory Storage. 2. Almacenamiento en disco.

NDB introducido como en el almacenamiento de datos de memoria y en la versión 7.4 (MYSQL 5.6) en adelante comenzó a admitir el almacenamiento en disco.

versión actual 7.5 (MySQL 5.7) admite el almacenamiento en disco y en este caso no habrá restricciones de tamaño ya que los datos residirán en el disco y el límite dependerá del espacio de almacenamiento de disco disponible.
configuraciones de almacenamiento en disco - https://dev.mysql.com/doc/refman/5.7/en/mysql-cluster-disk-data-symlinks.html

en el almacenamiento de memoria en NDB Cluster es también bastante madura y se pueden definir el uso de memoria en el archivo config.ini nodo de gestión. ejemplo - DataMemory = 3072M IndexMemory = 384M

en una tabla de promedio (depende de los datos almacenados en columnas) tamaño total db debe ser menos de 1 GB que puede ser fácilmente configurado.

Nota: en mi propia implementación me enfrenté a un desafío de rendimiento ya que el rendimiento de NDB se degrada con el aumento del número de filas en la tabla. Bajo concurrencia de alta carga, la lectura se degradará con el número de filas crecientes. Asegúrate de no utilizar el escaneo completo de tabla y proporciona suficiente predicado de cláusula where. Para un rendimiento adecuado, defina el índice secundario correctamente según su patrón de consulta. La definición del índice secundario aumentará de nuevo el consumo de memoria, por lo que planifique el patrón de consulta y los recursos de memoria en consecuencia.

Cuestiones relacionadas