2011-12-17 6 views
-2

Quelle est la grande table (conception de Google DataBase), j'ai ce type d'exigence, mais je ne sais pas comment le concevoir.DataBase Design (Big Table)

En grande table, comment maintenir les relations entre eux?

Répondre

0

créer toutes les tables avec le moteur de stockage InnoDB qui maintiennent des relations

Choisissez les champs de table selon et limitée à l'exigence

-1

Le papier de la table Big, publié par Google, peut être difficile à lire. J'espère que ma réponse peut vous aider à commencer à comprendre.

Dans les vieux jours, SGBDR stocke les données selon les lignes, un enregistrement d'une ligne, 1,2,3,4,5 .....

Ensuite, si vous voulez trouver fiche 5, il est ok, base de données cherchera dans un arbre B + (ou quelque chose de similaire) pour obtenir l'adresse de l'enregistrement 5, chargez-le pour vous.

Mais le cauchemar est lorsque vous voulez obtenir des enregistrements qui ont la colonne "utilisateur = Michael", la base de données n'a aucun moyen mais chercher chaque enregistrement à vérifier si l'utilisateur est "Michael".

Big Table a une manière différente de stocker des données. Il stocke toutes les colonnes par une table inversée. Quand nous voulons trouver tous les enregistrements qui satisfont "user = Michael", il cherche cela comme une clé via une arborescence B + ou une table de hachage, et obtient l'adresse de la table inversée où stocke la liste de tous les enregistrements satisfaisants. Peut-être un bon point de départ est Lucene, un moteur de recherche en texte intégral open source, une implémentation complète des grands principes de la table. Notez que la table inversée n'est pas un stockage basé sur une colonne dans le SGBDR. Ils sont différents, s'il vous plaît devez vous en souvenir.