Wenn Datenbanken bis zu Millionen von Datensätzen unterstützen können, wie werden all diese Daten so organisiert, dass Abfragen in einer angemessenen Zeit ausgeführt werden können?Wie sind Datenbanken effizient?
Antwort
Ich mag This Erklärung (einschließlich Grafiken;)
Dies ist artcicle Fazit:
Fazit
Index example http://mattfleming.com/files/images/example.gif
B-Baum-Indizes werden erstellt, um die Anzahl der erforderlichen E/A zu finden und eine Reihe von Daten zu laden. Ein hochselektiver Index verwendet die geringste Menge an I/O notwendig, schlecht selektive Indizes sind nicht viel besser als ein Table Scan.
Eine vollständige Antwort ist das Thema zahlreicher Bücher und Dissertationen ;-)
Allerdings ist die grundlegende Antwort, dass alle modernen RDBMS ein paar Eigenschaften haben: Erstens haben sie eine Abfrage-Optimierer, die ist sehr effektiv. Dies findet einen guten (nicht immer den besten) Pfad, um die gestellte Anfrage zu beantworten. Natürlich kann dies mehr tun, um komplizierte Fragen zu beantworten als einfache.
Zweitens speichern sie die Daten in einem strukturierten Format, das einfach zu suchen ist. Daten ohne einen gruppierten Index werden als Heap bezeichnet, und dies ist in der Regel weniger effektiv für die Suche, es handelt sich jedoch weiterhin um strukturierte Daten. Die Daten enthalten im Allgemeinen einen Clustered-Index, der die Daten logisch anordnet. (Einige Leute glauben, dass es die Daten physisch bestellt. Es gibt etwas Wahrheit, aber es ist nicht absolut wahr. Itzik Ben Gan unter anderen hat einen ausgezeichneten Artikel, der diesen Glauben entlarvt).
Zusätzlich zum gruppierten Index werden im Allgemeinen nicht gruppierte Indizes verwendet. Diese sind wie Indizes in einem Buch, die dem Abfrageoptimierer dabei helfen können, nach den angeforderten Daten zu suchen, oder in bestimmten Fällen kann der Index selbst alle erforderlichen Daten enthalten.
Dies ist natürlich eine grobe und schreckliche Vereinfachung. Wenn Sie ein tiefes Niveau verstehen wollen, seien Sie bereit, einen PHD in der Datenbank-Theorie zu verfolgen. Für ein allgemeines Verständnis können Sie Bücher über Datenbank-Interna betrachten. Insbesondere für SQL Server enthält SQL Server 2008 Internals viele Informationen zu diesem Thema.
Ich interessiere mich für das Lesen des Artikels, den Sie in der zweiten (dritten?) Absatz – RCIX
Blick auf SQL Server Magazine InstantDoc ID # 92886 – TimothyAWiseman
- 1. Datenbanken: Sind "TEXT" -Felder weniger effizient als "varchar"?
- 2. Mehrere identische Datenbanken effizient verwalten?
- 3. Sind benutzerdefinierte Standardkonstruktoren weniger effizient?
- 4. MSSQLLOCALDB-Datenbanken sind nicht aufgeführt
- 5. Kann Graphen-Datenbanken Daten effizient über Knoten verteilen?
- 6. Prüfen, ob 2 Datenbanken vorhanden sind
- 7. Wann sind QLCs viel weniger effizient?
- 8. Wo sind alle nativen revisionierten Datenbanken?
- 9. Wo/wie sind (meine) SQL-Datenbanken auf Webservern gespeichert?
- 10. Wie viele sind zu viele Datenbanken auf SQL Server?
- 11. Wie effizient ist WebMatrix?
- 12. Wie zwei Datenbanken zu vergleichen?
- 13. Wie behandeln Datenbanken redundante Werte?
- 14. Wie funktionieren Datenbanken intern?
- 15. Wie wird Modulo effizient eingesetzt?
- 16. Wann mehrere Datenbanken vs mehrere Tabellen zu verwenden sind
- 17. Sind SharePoint-Websitevorlagen wirklich weniger effizient als Websitedefinitionen?
- 18. Staging-Tabellen/Staging-Datenbanken sind ein Anti-Pattern?
- 19. Was sind die Unterschiede zwischen den NoSQL-Datenbanken und wie unterscheiden sie sich von traditionellen relationalen Datenbanken?
- 20. Sind Datenbanken immer die Lösung im Web-Datenspeicher?
- 21. UCI-Verbindungen zu Nicht-Universums-Datenbanken sind nicht zulässig
- 22. Wie effizient Variablen mit sas
- 23. Wie effizient ist Chokidar (Node.js)?
- 24. golang: wie Union-Typen effizient
- 25. Wie effizient mit MySQLDB SScursor?
- 26. Wie effizient ist PHP's substr?
- 27. Wie migrieren MySQL-Datenbanken zu meinem lokalen Rechner
- 28. Sichern/Verschlüsseln eingebetteter Datenbanken in Delphi
- 29. Wie man einen verbundenen Graphen effizient konstruiert?
- 30. Mittelwertbildung effizient
defekten Link, die Klammer ist verlegt – kibibu