2010-07-02 9 views
5

Die Abfragen, die ich häufig erstelle, haben 7-8 Joins, um Daten abzurufen. Sind diese vielen Verknüpfungen in einer echten Datenbankanwendung normal oder ist mein Datenbankentwurf schlecht? Ich bin neugierig, weil, wenn auf jeder Anfrage Datenbank so viel Arbeit zu tun hat, dann wird es nicht sterben, wenn einige Tausende von Kunden verbinden?Wie viele Joins pro Funktionalität in einer realen Anwendung?

Antwort

2

Meiner Meinung nach ist es in einigen Fällen unvermeidlich, dass die richtigen Indizes für die von Ihnen ausgeführten Abfragen vorhanden sind. Mit einem Deep-Objekt-Graphen in ORM oder vielleicht einem mit verbundenen Subklassen wäre es einfach, über die 7-8 Joins zu gehen, von denen Sie sprechen. Ich bin gespannt zu hören, was alle anderen darüber zu sagen haben :)

+0

OP - einige der komplexeren Dinge in unserer App verwenden ein Dutzend Tabellen. Wir indexieren auch Dinge, die zu unseren Join-Strategien passen. Vielleicht möchten Sie Ihr Design erneut besuchen, wenn Sie Probleme bemerken. – DaveE

1

Es ist nicht möglich, eine Schlussfolgerung in dieser Hinsicht ohne die Application Logic Details zu ziehen. Wenn Ihre Anwendungslogik Sie zu unvermeidlichen Joins führt, um die Integrität zu erhalten, ist das kein Problem und Ihre Datenbankplattform muss damit umgehen.

1

Das ist eine Menge Joins. Es ist schwer zu sagen, ohne dein Schema zu sehen, aber ich habe Fälle gesehen, in denen Leute verrückt geworden sind und ein Schema zu kompliziert gemacht haben. Ich erinnere mich an eine Anwendung, an der ich arbeitete, wobei jede Adresse und Telefonnummer im System als eine Entität behandelt wurde und Abfragen häufig Verknüpfungen von mehr als einem Dutzend Tabellen beinhalteten. Sie sollten vorsichtig sein, wenn Sie ein Schema erstellen, um zwischen den Dingen zu unterscheiden, die Sie für die individuelle Verfolgung und alles andere interessieren, sonst können Sie unnötige Komplexität haben.

Verwandte Themen