2

Je me demandais sur les deux options suivantes quand on n'utilise pas les tables SQL mais BDs à base de ORM (exemple - lorsque vous utilisez GAE)Java ORM question relative - SQL Vs Google DB (Big Table?) GAE

La deuxième option serait-elle moins efficace?

Condition: Il existe un objet. L'objet possède une collection d'éléments similaires. J'ai besoin de stocker cet objet. Exemple, disons que l'objet est un arbre et qu'il a une collection de feuilles.

Option 1: la structure traditionnelle de type SQL: (. Avec ArbreID comme identificateur pour une rangée dans le tableau)

  • Tableau de l'arbre
  • Table pour les feuilles (où chaque feuille a un TreeId et pour montrer les feuilles d'un arbre, je demande toutes les feuilles où le TreeId est l'Id de l'arbre.)
  • Ici, la structure de l'arbre NE DOIT PAS avoir un champ avec des feuilles.

Option 2: ORM/GAE Tables: En utilisant le même exemple ci-dessus,

  • J'ai un objet pour l'arbre où l'objet a une collection (Set/Liste en Java/C++) de feuilles.
  • I stocker et récupérer l'arbre avec les feuilles (comme les feuilles sont mises en œuvre comme un ensemble dans l'objet Arbre)

Ma question est, sera la deuxième moins efficace que la première option?

Si oui, pourquoi? Y a-t-il d'autres alternatives?

Merci!

+0

La réponse à cette question dépend de l'efficacité avec laquelle vos alternatives ont été implémentées. Si vous prenez un SGBD rapide, vous obtiendrez de bonnes performances. La banque de données Google est censée être efficace et évolutive, mais vous devrez la tester en tenant compte de votre modèle d'utilisation. En ce qui concerne ORM - en général, il ajoute une couche entre vous et la base de données de sorte qu'il affecte légèrement les performances. –

Répondre

1

Il serait préférable d'utiliser Hibernate (pour Java) ou un autre cadre ORM que ORM db.
1. Les orm db's sont pour la plupart amateurs.
2. personne ne l'apprécie. Vous serez beaucoup mieux spécialiste si vous connaissez PostgreSQL avec orm framework que juste un certain orm db.
3. il existe de nombreuses normes dans le monde de rdbms. pas de normes en orm dbs.
4. Le soutien et la communauté de rdbms rendent ce choix plus sûr à long terme.
5. L'efficacité est une question délicate. Près de 80% pensent que si vous voulez trouver une ligne avec "name = 'Alex'", elle sera plus rapide dans rdbms que dans orm db, cuz orm db devra décompresser l'objet pour cette opération. PS: Je comprends, mon article est presque hors-sujet, mais je pense qu'il contient de bonnes choses à penser.