2011-09-19 13 views
12

Ho intenzione di memorizzare un'enorme quantità di dati di matrice in un mysqlDB qual è il modo più efficiente per archiviare e accedere ai dati?Il modo più efficiente per archiviare e accedere a un'enorme matrice di dati in MySQL

L'efficienza è più importante quando si ricevono i dati, la tabella non verrà aggiornata regolarmente.

La matrice è di circa 100.000 volte 1000 (probabilmente più in futuro)

 

id1 
value 
value_id1 
id1 
value 
value_id2 
id2 
value 
value_id1 
id2 
value 
value_id2 
. 
. 
. 
id 100.000 
value 
value_id1000 

vs 
    value_id1, value_id2, value_id3 ... id 1000 
id1 value  value  value 
id2 value  value  value 
id3 value  value  value 
. 
. 
. 
id 100.000 

Quando i dati è enorme ciò che è più efficiente, una breve chiamata (query mysql) o di avere i dati memorizzati come matrice? I dati vengono utilizzati regolarmente, quindi deve essere efficiente per recuperare i dati.

+0

È una matrice sparsa? Ha senso nell'applicazione suddividerlo? – spraff

+0

La dimensione orizzontale della matrice sta per rimanere coerente? O è probabile che si riduca o cresca? – dmcnelis

+0

La dimensione horiontal sarà probabilmente coerente, potrebbe essere cambiata in un "upgrade" ma non regolarmente! – david

risposta

9

Poiché detto che vuoi efficienza in recupero, userei formato seguente tabella

Column Row Value 
     1 1 1.2 
     2 1 2.3 
     ... 

utilizzando il formato e indicizzazione su colonna e riga della matrice, è possibile recuperare una parte dei dati veloce come si desidera .

+0

puoi elaborarlo e farmi sapere? Come funziona esattamente? –

4

Ci sono un paio di domande pertinenti qui:

Le risposte per matrici dense sembrano ridursi a una tabella normalizzata con colonne per colonna, riga, e valore, come suggerito da Taesung sopra, o facendo qualcosa come la memorizzazione di singole righe dalla matrice originale come BLOB.

HDF5 sembra essere fatto per questo genere di cose. Sarebbe bello se qualcuno con esperienza potesse commentare ulteriormente.

Problemi correlati