Domanda

Voglio implementare il cluster NDB per il cluster MySQL 6. Voglio farlo per una struttura di dati molto enorme con almeno 2 milioni di record.

Voglio sapere è se ci sono limiti di implementazione del cluster NDB. Ad esempio, dimensioni RAM, numero di database o dimensioni del database per cluster NDB.

È stato utile?

Soluzione

2 milioni di database? Assumo che intendevi "righe".

Ad ogni modo, per quanto riguarda le limitazioni: una delle cose più importanti da tenere a mente è che il cluster NDB/MySQL non è un database per scopi generali. In particolare, le operazioni di join, ma anche le sottoquerie e le operazioni di intervallo (query come: gli ordini creati tra ora e una settimana fa) possono essere considerevolmente più lenti di quello che 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 prestazioni di join possono comunque essere molto deludenti.

D'altra parte, se è necessario gestire molte transazioni simultanee (preferibilmente piccole) (in genere aggiornamenti/inserisce/elimina le ricerche/elimina le ricerche per chiave primaria) e si managerano per mantenere tutti i tuoi dati in memoria, allora può essere molto Soluzione scalabile e performante.

Dovresti chiederti perché vuoi un cluster. Se desideri semplicemente il tuo database ordinario che hai ora, tranne con l'aggiunta di disponibilità del 99.999%, potresti essere deluso. Certamente MySQL Cluster può offrirti una grande disponibilità e tempo di attività, ma il carico di lavoro della tua app potrebbe non essere molto adatto per il cluster di Thtings è buono. Inoltre potresti essere in grado di utilizzare un'altra soluzione ad alta disponibilità per aumentare il tempo di attività del database altrimenti tradizionale.

BTW - Ecco un elenco di limitazioni secondo il doc: http://dev.mysql.com/doc/refman/5.1/en/mysql-cluster-limitations.html

Ma qualunque cosa tu faccia, prova il cluster, vedi se fa bene a te. Il cluster MySQL non è "MySQL + 5 NINES". Lo scoprirai quando ci provi.

Altri suggerimenti

Il cluster NDB viene fornito con due tipi di opzioni di archiviazione.

1. In memoria di memoria. 2. Archiviazione in gradi.

NDB introdotto come archivio dati di memoria e nella versione 7.4 (MySQL 5.6) in poi ha iniziato a supportare l'archiviazione del disco.

L'attuale versione 7.5 (MySQL 5.7) supporta l'archiviazione del disco e in questo caso non ci saranno vincoli di dimensioni poiché i dati risiederanno nel disco e il limite dipende dallo spazio di archiviazione del disco disponibile con l'utente.
Configurazioni di archiviazione su disco - https://dev.mysql.com/doc/refman/5.7/en/mysql-cluster-disk-data-symlinks.html

Nella memoria di memoria nel cluster NDB è anche abbastanza maturo e è possibile definire l'utilizzo della memoria nel file Config.ini del nodo di gestione. Esempio - DataMemory = 3072m IndexMemory = 384m

In una tabella media (dipende dai dati memorizzati nelle colonne) la dimensione del DB totale dovrebbe essere inferiore a 1 GB che può essere facilmente configurata.

Nota: nella mia implementazione ho affrontato una sfida delle prestazioni poiché le prestazioni di NDB si degradano con un numero crescente di righe nella tabella. In una lettura di concorrenza ad alto carico si degraderà con il numero di riga in aumento. Assicurati di non andare per la scansione completa della tabella e fornire sufficiente il predicato della clausola. Per le prestazioni adeguate definire correttamente l'indice secondario secondo il modello di query. La definizione dell'indice secondario aumenterà di nuovo il consumo di memoria, quindi pianifica di conseguenza il modello di query e le risorse di memoria.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top