2011-09-19 5 views
12

Je vais stocker une énorme quantité de données matricielles dans un mysqlDB quel est le moyen le plus efficace pour stocker et accéder aux données?Le moyen le plus efficace pour stocker et accéder à une énorme matrice de données dans MySQL

L'efficacité est le plus important lors de l'obtention des données, la table ne sera pas mis à jour régulièrement.

La matrice est d'environ 100.000 fois 1000 (probablement plus à l'avenir)

 

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 

Lorsque les données est énorme ce qui est le plus efficace, un bref appel (requête mysql) ou d'avoir les données stockées en tant que matrice? Les données sont utilisées régulièrement, il doit donc être efficace pour récupérer des données.

+0

Est-ce une matrice clairsemée? Est-il logique dans l'application de le subdiviser? – spraff

+0

La dimension horizontale de la matrice va-t-elle rester constante? Ou est-il susceptible de rétrécir ou de croître? – dmcnelis

+0

La dimension horiontal sera probablement cohérente, elle pourrait être changée dans une "mise à niveau" mais pas régulièrement! – david

Répondre

9

Puisque vous avez dit que vous voulez efficacité dans fetching, j'utiliser suivant le format de table

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

En utilisant le format et l'indexation sur la colonne et la ligne de la matrice, vous pouvez chercher une partie de données aussi vite que vous le souhaitez .

+0

pouvez-vous élaborer et laissez-moi savoir? Comment ça fonctionne exactement? –

4

Il y a quelques questions pertinentes ici:

Les réponses pour les matrices denses semblent se résumer à une table normalisée avec des colonnes pour colonne, ligne et valeur, comme suggéré par Taesung ci-dessus, ou faire quelque chose comme stocker des lignes individuelles de votre matrice d'origine comme blobs.

HDF5 semble être faite pour ce genre de chose. Ce serait génial si quelqu'un d'expérience pouvait commenter davantage.

Questions connexes