Ok, dumme Frage, die ich kenne, aber ich sehe den nebulösen Kommentar 'eine große Datenbank' sowie kleine und mittlere und ich frage mich, was das genau bedeutet. Kann jemand definieren, was eine kleine, mittlere und große Datenbank für uns SQL-Neulinge ist?
80
Antworten:
Es gibt keinen Schwellenwert, bei dem eine kleine Datenbank mittel oder eine mittlere Datenbank groß wird. Wenn ich diese Begriffe höre, denke ich im Allgemeinen an bestimmte Größenordnungen in Bezug auf die Gesamtzahl der gespeicherten Datensätze.
Wie Poster dkretz vorgeschlagen hat, können Sie auch über die Eigenschaften jeder Art von Datenbank nachdenken. Wenn ich es so kategorisiere, würde ich sagen:
Klein: Leistung ist kein Problem. Ihre Abfragen werden ohne besondere Optimierungen einwandfrei ausgeführt. Sie sehen nur einen geringfügigen Leistungsunterschied, wenn Sie Front-Line-Verbesserungen wie Indizes verwenden.
Mittel: Ihre Datenbank verfügt wahrscheinlich über ein oder mehrere Mitarbeiter, die in Teilzeit für die Wartung und Pflege zuständig sind. Diese Personen achten auf den Zustand der Datenbank. Ihre primäre administrative Verantwortung besteht darin, inakzeptable Leistungsprobleme zu vermeiden und Ausfallzeiten zu minimieren.
Groß: Hat wahrscheinlich engagierte Mitarbeiter, deren Aufgabe es ist, an der Datenbank zu arbeiten und die Leistung zu verbessern sowie sicherzustellen, dass Anwendungsänderungen während der gesamten Lebensdauer der Datenbank keinen Schemabruch verursachen. Metriken über den Zustand und den Status der Datenbank werden genau überwacht. Um Optimierungen zu verstehen und durchzuführen, ist erhebliches Fachwissen erforderlich.
Sehr groß: Die Datenbank speichert große Mengen an Informationen, auf die leicht zugegriffen werden muss. Leistungsoptimierungen sind unbedingt erforderlich, um aus jeder Abfrage die letzte Unze Geschwindigkeit herauszuholen, und ohne sie wäre die Datenbank viel weniger nutzbar oder sogar unmöglich zu verwenden. Die Datenbank verwendet möglicherweise ausgefeilte oder innovative Replikations- oder Clustering-Techniken, wodurch die Grenzen der aktuellen Technologie überschritten werden.
Beachten Sie, dass diese völlig subjektiv sind und dass jemand möglicherweise eine absolut legitime alternative Definition von "groß" hat.
quelle
Eine Möglichkeit, dies herauszufinden, besteht darin, Ihre Testabfragen zu beobachten.
In einer kleinen Datenbank spielen Indizes keine Rolle.
Bei einer mittleren Datenbank dauern Abfragen länger als eine Sekunde, wenn kein geeigneter Index vorhanden ist.
In einer großen Datenbank dauert die Optimierung von Abfragen häufig Stunden. Dabei wird eine Kombination aus Abfragedesign, Indexänderung und vielen Testzyklen verwendet.
quelle
Große Datenbanken zwingen Sie dazu, die Verwendung relationaler Datenbanken einzustellen.
Mit anderen Worten, eine normalisierte, relationale Datenbank, in der alle Indizes der Welt Ihnen aufgrund der massiven JOINs nicht helfen können, Ihre Anforderungen an die Antwortzeit zu erfüllen.
Wenn Sie jemals relationale Datenbanken für etwas anderes aufgeben mussten, sind Sie entweder ein schlechter Datenbankentwickler, haben keinen Experten-DBA oder eine sehr große Datenbank.
quelle
"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.
quelle
Für diese Definition müssen Sie den Hardware-Fortschritt berücksichtigen:
Kleine Datenbank: Der Arbeitssatz passt in den physischen RAM eines einzelnen Commodity-Servers (jetzt ca. 16 GB).
Mittlere Datenbank: Passt in eine einzelne oder mehrere (über RAID) Standardfestplatten auf einem einzelnen Computer (jetzt bis zu mehreren TBs)
Große Datenbank: Daten müssen auf mehrere Commodity-Server verteilt werden, damit sie passen (jetzt bis zu mehreren PBs).
quelle
Laut Wikipedia-Artikel über sehr große Datenbanken
quelle
Wenn Sie eine Datenbank haben, die groß genug ist, dass Sie sie nicht einfach "sichern" können, um eine Entwicklungs- oder Testbox einzurichten, haben Sie wahrscheinlich eine "große Datenbank".
quelle
Ich denke, so etwas wie Wikipedia oder die US-Volkszählungsdaten sind eine "große" Datenbank. Meine persönlichen Adresslisten oder Aufgaben sind eine kleine Datenbank. Eine mittelgroße Datenbank liegt dazwischen.
Sie können versuchen, die Größe anhand der Anzahl der benötigten Server zu definieren. Eine kleine Datenbank ist eine Komponente einer Anwendung, die Sie auf Ihrem Desktop ausführen. Eine mittelgroße Datenbank ist irgendwo ein einzelner MySQL-Server (was auch immer), und für eine große Datenbank sind mehrere Server mit einer Art Replikations- / Failover-Unterstützung erforderlich.
quelle