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
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 :)
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.
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.
- 1. Wie viele CouchDB Datenbanken pro Anwendung?
- 2. Verwendet jemand AODL in einer realen Anwendung?
- 3. Wie viele physikalische Tiers existieren in realen Anwendungen
- 4. Wie viele Bytes pro Inodes?
- 5. Android: Eine vs viele Instanzen von HttpClient pro Anwendung
- 6. Debuggen einer JLink-Anwendung in Pro-Engineer
- 7. Wie viele Joins sind in SQL Server 2008 zulässig?
- 8. Quellcode-Repository - pro Client oder pro Anwendung?
- 9. QPX. Wie viele Rückgaben pro Abfrage?
- 10. Wie viele Gegenstände wurden pro start_url geschabt
- 11. SQL für eine viele zu viele Beziehung mit inneren Joins
- 12. HTML5 benutzerdefinierte Dateneigenschaft. Wie viele pro Element?
- 13. Wie viele Synapsen pro Knoten brauche ich?
- 14. Wie realen Wert des -2.12683575e-04 in einer Datei (Python)
- 15. Wie viele app.config-Dateien dürfen Sie pro AppDomain haben?
- 16. Emulation der Funktionalität von Robocopy in einer .NET-Anwendung
- 17. Kommentar Funktionalität in Facebook Iframe-Anwendung
- 18. Max-Wert in einer Viele-zu-Viele-Beziehung
- 19. Excel dynamische Tabellen wie Funktionalität in Web-Anwendung
- 20. Wie Debug-Code für Reset-Funktionalität in Java GUI-Anwendung?
- 21. viele Methoden von vielen Objekten viele Male pro Sekunde
- 22. SQLite - Wählen Sie mit JOINs zu Viele-zu-Viele und Eins-zu-Viele
- 23. Wie viele Synchronisationsobjekte können pro Prozess und pro Computer in Windows verwendet werden?
- 24. Wie viele Anfragen kann SQL Server pro Sekunde verarbeiten?
- 25. Wie viele Speicherlatenzzyklen pro Speicherzugriffstyp in OpenCL/CUDA?
- 26. Filter-Funktionalität in einer Reaktionskomponente
- 27. Glassfish in der realen Welt
- 28. Wie viele Spalten sind zu viele Spalten?
- 29. Sind JOINs und eine zu viele Typ Relationen verwandt?
- 30. Symfony2 + FOSRestBundle: REST-Funktionalität pro Controller/Aktion aktivieren/deaktivieren?
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