Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Wie groß kann eine SQL DB werden ohne Leistungsverlust? (https://www.delphipraxis.net/138596-wie-gross-kann-eine-sql-db-werden-ohne-leistungsverlust.html)

Jackie1983 13. Aug 2009 09:22

Datenbank: MySQL (XAMPP) • Version: 5.0.51a • Zugriff über: DirectMySQL

Wie groß kann eine SQL DB werden ohne Leistungsverlust?
 
Servus,

wie groß kann eine Datenbank werden ohne das man es an der Leistung merkt.
Bzw. wie viele Einträge kann man speichern. Ich denke mal wenn man so an die 10.000 hat und macht dann eine query
kann das doch bestimmt recht lange dauern bis eine antwort kommt, oder?

Gruß

himitsu 13. Aug 2009 09:27

Re: Wie groß kann eine SQL DB werden ohne Leistungsverlust?
 
Es kommt ja erstmal auf das verwendete DB-System an, auch auf die "Leistung" des dahinterligenden PCs
und natürlich auf den Aufbau der Tabellen (wie z.B. passend erstellte Indizes)

Aber bei einem "ordentlichem" System sollten locker mehrere Millionen Einträge möglich sein.
(nim mal Google, da sind in der DB mehrere hindert Millionen oder mehr, Einträge und dennoch dauert eine Anfrage, zusammen mit der Übertragung über's WWW, nur einige Millisekunden)
Und die DP nutzt ja auch MySQL, ist nicht grade klein und dennoch recht flott.

Codewalker 13. Aug 2009 10:00

Re: Wie groß kann eine SQL DB werden ohne Leistungsverlust?
 
Da gibt es Unmengen an Faktoren. Gute Indizes sind ganz wichtig (hat himitsu ja schon gesagt) und dann ist auch ein wichtiger Faktor, wie viele Daten deine Query denn tatsächlich zurückliefert. Der beste Index hilft nicht viel, wenn deine Abfragen tausende Zeilen als Ergebnis liefern müssen. Hinzu kommt auch, wie viele User gleichzeitig die DB mit Abfragen quälen. Bei richtig großen Datenbanken werden Datenbanken auf verschiedene Rechner verteilt (z.B. eine große Tabelle auf Rechner 1, eine andere auf Rechner 2 und den ganzen Kleinkram auf Rechner 3. Mann kann in manchen großen DBs sogar einzelne Spalten von Tabellen auslagern), aber dafür müssen es schon sehr viele Datensätze und User sein, damit sich der Aufwand wirklich lohnt.
Im Kleinen gilt meist: Kluge Indizes und sinnvolles Design von Tabellen und Abfragen (um mit den Indizes möglichst schnell die wenigen benötigten Datensätze zu finden). Damit kann man die Grenze schon recht weit nach oben verschieben

mjustin 13. Aug 2009 12:07

Re: Wie groß kann eine SQL DB werden ohne Leistungsverlust?
 
Zitat:

Zitat von Jackie1983
Servus,

wie groß kann eine Datenbank werden ohne das man es an der Leistung merkt.
Bzw. wie viele Einträge kann man speichern. Ich denke mal wenn man so an die 10.000 hat und macht dann eine query
kann das doch bestimmt recht lange dauern bis eine antwort kommt, oder?

Gruß

Probieren geht über studieren :)

Um zu kontrollieren ob man beim Datenbankdesign und der Wahl der Hardware alles richtig gemacht hat, sollte man einen Lasttest fahren. Dazu benötigt man einige Datensätze (eventuell einige *Millionen* Datensätze), und ein Werkzeug für den eigentlichen Lasttest.

* als Lastgenerator sehr gut geeignet ist z.B. Apache JMeter, es bietet eine grafische Oberfläche und erlaubt auch die Simulation von Mehrbenutzerbetrieb (Threads), die Ergebnisse kann man dann grafisch oder mit statistischen Werten anzeigen lassen, es benötigt nur einen JDBC Datenbank-Treiber der zur Datenbank passt, und man kann ein ganzes Bündel an SQL Abfragen (oder Prozeduraufrufen) definieren, das dann beliebig oft abgespielt wird

* nach Änderungen an der Hardware (mehr / weniger RAM oder CPUs) oder der Datenmenge kann man die Tests zum Vergleich wiederholen, um die kostengünstigste Konfiguration zu ermitteln

* wenn man die Daten nicht manuell erfassen will, kann man für wenig Euro auch kommerzielle Testdatengeneratoren bekommen

Viele Grüße,


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:42 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz