2009-12-30 17 views

risposta

15

2 milioni di database? Suppongo che tu intendessi "righe".

In ogni caso, per quanto riguarda le limitazioni: una delle cose più importanti da tenere a mente è che NDB/MySQL Cluster non è un database di uso generale. In particolare, le operazioni di join, ma anche le subquery e le operazioni di intervallo (query come: ordini creati tra ora e una settimana fa), possono essere notevolmente più lente di quanto ci si potrebbe aspettare. Ciò è in parte dovuto al fatto che i dati sono distribuiti su più nodi. Sebbene siano stati apportati alcuni miglioramenti, le performance di Join possono ancora essere molto deludenti.

D'altra parte, se è necessario gestire molte transazioni simultanee (preferibilmente di piccole dimensioni) (in genere aggiornamenti/inserimenti/eliminazione di una riga singola per chiave primaria) e il proprio personale per conservare tutti i dati in memoria, quindi può essere una soluzione molto scalabile e performante.

Dovresti chiederti perché vuoi il cluster. Se vuoi semplicemente il tuo database ordinario che hai ora, eccetto con una disponibilità del 99,999%, potresti essere deluso. Certamente, il cluster MySQL può offrire grande disponibilità e tempo di attività, ma il carico di lavoro della vostra app potrebbe non essere molto adatto per il funzionamento del cluster. Inoltre, potresti essere in grado di utilizzare un'altra soluzione ad alta disponibilità per aumentare il tempo di attività del tuo database altrimenti tradizionale.

BTW - ecco una lista di limitazioni come da doc: http://dev.mysql.com/doc/refman/5.1/en/mysql-cluster-limitations.html

Ma qualunque cosa tu faccia, provare cluster, vedere se il suo bene per voi. Il cluster MySQL non è "MySQL + 5 nines". Lo scoprirai quando ci proverai.

1

Il cluster NDB è dotato di due tipi di opzioni di archiviazione.

1. In memoria. 2. Archivio memoria.

NDB introdotto come nella memoria di memoria dei dati e nella versione 7.4 (MYSQL 5.6) ha iniziato a supportare l'archiviazione su disco.

versione corrente 7.5 (MySQL 5.7) supporta l'archiviazione su disco e in questo caso non ci saranno vincoli di dimensione poiché i dati risiederanno nel disco e il limite dipenderà dallo spazio di archiviazione su disco disponibile con voi.
configurazioni di memoria disco - https://dev.mysql.com/doc/refman/5.7/en/mysql-cluster-disk-data-symlinks.html

in deposito Memoria in NDB Cluster è anche abbastanza maturo e si può definire l'utilizzo di memoria nel file config.ini nodo di gestione. esempio - DataMemory = 3072M IndexMemory = 384M

in una tabella media (dipende dai dati memorizzati nelle colonne) dimensione totale db dovrebbe essere inferiore a 1 GB che può essere facilmente configurato.

Nota: nella mia implementazione ho affrontato una sfida delle prestazioni poiché le prestazioni del NDB si riducono con l'aumento del numero di righe nella tabella. In condizioni di elevata concorrenza, la lettura verrà degradata con il numero della riga crescente. Assicurarsi di non andare alla scansione completa della tabella e fornire un predicato della clausola where sufficiente. Per prestazioni corrette, definire l'indice secondario in modo appropriato secondo il modello di query. La definizione dell'indice secondario aumenterà nuovamente il consumo di memoria, quindi pianifica il modello di query e le risorse di memoria di conseguenza.

Problemi correlati