"Große Datenbank" ist in der Tat ein nebulöses Konzept. In den Antworten auf diese Frage sind bereits sehr unterschiedliche Antworten und Meinungen enthalten. Einige Ansätze zur Definition von „kleinen“, „mittleren“ und „großen“ Datenbanken sind möglicherweise sinnvoller als andere, ABER DANN halte ich jede Definition für richtig, wahr und gültig.
Einige Definitionen sind sinnvoller als andere, da sie sich auf verschiedene Aspekte konzentrieren, die für das Design, die Programmierung, die Verwendung, die Wartung und die Verwaltung einer Datenbank von Bedeutung sind, und diese verschiedenen Aspekte sind für eine verwendbare Datenbank wirklich wichtig. Es kommt einfach vor, dass all diese Aspekte durch das nebulöse Konzept der „Datenbankgröße“ beeinflusst werden.
Bedeutet dies, dass es keine Rolle spielt, ob Sie definieren können, ob eine bestimmte Datenbank groß ist oder nicht?
Sicherlich nicht. Dies bedeutet, dass Sie das Konzept unterschiedlich anwenden und gleichzeitig verschiedene Design-, Betriebs- und Verwaltungsaspekte Ihrer Datenbank bewerten. Es bedeutet auch, dass dieses Konzept jedes Mal nebulös sein wird.
Beispiel: Die Datenbankindexstrategie (ein Aspekt des Datenbankdesigns) wird durch die Datensatzanzahl für jede Tabelle (ein Maß für die „Größe“), die Datensatzgröße mal die Datensatzanzahl (ein weiteres Maß für die „Größe“) und die Abfrage Vs beeinflusst . Verhältnis von Erstellungs-, Aktualisierungs- und Löschvorgängen (ein Aspekt der Datenbanknutzung).
Die Antwortzeiten für Abfragen sind besser, wenn Indizes für Tabellen mit einer großen Anzahl von Datensätzen verwendet werden. Abhängig von der Art Ihrer WHERE-, ORDER BY- und Datensatzaggregationsklauseln benötigen Sie möglicherweise mehrere Indizes für bestimmte Tabellen.
Das Erstellen, Aktualisieren und Löschen wird durch die Erhöhung der Anzahl der Indizes für die betroffenen Tabellen negativ beeinflusst. Mehr Indizes für eine betroffene Tabelle bedeuten mehr Änderungen, die das RDBMS durchführen muss, und mehr Zeit und Ressourcen, um diese Änderungen anzuwenden.
Wenn Ihr RDBMS mehr Zeit für die Anwendung dieser Änderungen benötigt, werden die Sperren auch länger beibehalten, was sich auf die Antwortzeiten auswirkt, die andere Abfragen gleichzeitig an das System senden.
Wie balancieren Sie die Menge und das Design Ihrer Indizes? Woher wissen Sie, ob Sie einen zusätzlichen Index benötigen und ob Sie durch Hinzufügen dieses Index keine großen negativen Auswirkungen auf die Antwortzeiten von Abfragen haben? Antwort: Sie testen und profilieren Ihre Datenbank anhand einer Ziellast gemäß Ihren Last- / Leistungsanforderungen und analysieren die Profildaten, um festzustellen, ob weitere Optimierungen / Neugestaltungen / Indizes erforderlich sind.
Für verschiedene Query Vs. sind unterschiedliche Indexstrategien erforderlich. Verhältnisse zum Erstellen / Aktualisieren / Löschen von Vorgängen. Wenn Ihre Datenbank stark ausgelastet ist, aber nur selten aktualisiert wird, ist die Leistung für die gesamte Anwendung besser, wenn Sie jeden Index hinzufügen, der die Antwortzeiten für Abfragen verbessert. Wenn Ihre Datenbank jedoch ständig aktualisiert wird, aber keine großen Abfragevorgänge ausgeführt werden, ist die Leistung besser, wenn Sie weniger Indizes verwenden.
Es gibt natürlich noch andere Aspekte: Datenbankschema-Design, Speicherstrategie, Netzwerkdesign, Sicherungsstrategie, Gespeicherte Prozeduren / Trigger / usw. Programmierung, Anwendungsprogrammierung (gegen die Datenbank) usw. Alle diese Aspekte werden durch unterschiedliche Konzepte der „Größe“ (Datensatzgröße, Datensatzanzahl, Indexgröße, Indexanzahl, Schemadesign, Speichergröße usw.) unterschiedlich beeinflusst.
Ich hätte gerne mehr Zeit, da dieses Thema faszinierend ist. Ich hoffe, dieser kleine Beitrag dient Ihnen als Ausgangspunkt in dieser faszinierenden Welt von SQL.