php.de

Zurück   php.de > Webentwicklung > Datenbanken

Datenbanken SQL und Co

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 12.03.2006, 14:02  
Gast
 
Beiträge: n/a
Standard Tabelle mit 117.649.000.000/567.869.252.000 Einträgen?

Hallo!
Ich habe mal ein paar theoretische Fragen zur MySQL-Performance:

Wie groß wäre eine Tabelle mit 117.649.000.000 (567.869.252.000) Einträgen? Wäre soetwas realisierbar? rein technisch. Welche Rechnerperformance bräuchte man?

Wie lange würde ein SELECT-Befehlt mit einem Element in der Ergebnismenge bei einer Tabelle mit 117.649.000.000 (567.869.252.000) Einträgen dauern?

Ich muss mich für die Absurdität dieser Frage entschuldigen..

Danke schonmal für eure Antworten
  Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 12.03.2006, 15:02  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

Eine Tabelle mit 117 Milliarden Einträgen? Darf man fragen wozu?
Kann deine theoretischen Fragen nicht beantworten, aber im Einsatz/in der Praxis kann du soetwas gleich vergessen, dafür ist MySQL nicht konzipiert.
Zergling-new ist offline   Mit Zitat antworten
Alt 12.03.2006, 15:53  
Neuer Benutzer
 
Registriert seit: 10.03.2006
Beiträge: 26
ninguno
Standard

ja da ist wohl eher Oracle oder DB2 gefragt
ninguno ist offline   Mit Zitat antworten
Alt 12.03.2006, 18:38  
Erfahrener Benutzer
 
Registriert seit: 21.12.2004
Beiträge: 4.651
PHP-Kenntnisse:
Fortgeschritten
mepeisen ist ein Lichtblickmepeisen ist ein Lichtblickmepeisen ist ein Lichtblickmepeisen ist ein Lichtblickmepeisen ist ein Lichtblickmepeisen ist ein Lichtblick
mepeisen eine Nachricht über ICQ schicken mepeisen eine Nachricht über Skype™ schicken
Standard

Investiere mal etwa 1.000.000 Euro und stell dir eine entsprechende IBM Blackbox hin, auf der DB/2 läuft.
In umserem RZ läuft bei diesem ungefähren Umfang (es sind logischerweise nicht nur eine Tabelle, sondern mehrere aufgrund Ausfallsicherheit, aber egal.) ein DB/2 auf OS/390. Altbacken nennen es einige, aber es läuft bei 99,9% Verfügbarkeit...

Fazit: Wenn du in diesen Dimensionen denkst, dann musst du auch finanziell und entsprechend Hardwaretechnisch in deutlich anderen Dimensionen denken, egal ob du Oracle oder DB/2 nimmst.

P.S.: Auch MySQL kann inzwischen auf diesen Dimensionen arbeiten. Es hat einige andere Nachteile gegenüber DB/2 oder Oracle, die aber nicht direkt etwas mit Massenabfertigung zu tun haben. Performance-Vergleiche sind bei diesen Dimensionen nicht machbar, da jedes der Systeme eigene Regeln für Optimierungen hat und man daher nicht eins zu eins Performance vergleichen kann...
mepeisen ist offline   Mit Zitat antworten
Alt 12.03.2006, 18:47  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

Zitat:
Zitat von mepeisen
P.S.: Auch MySQL kann inzwischen auf diesen Dimensionen arbeiten.
Kannst du das mal ausführen?
Zergling-new ist offline   Mit Zitat antworten
Alt 12.03.2006, 19:10  
Erfahrener Benutzer
 
Registriert seit: 21.12.2004
Beiträge: 4.651
PHP-Kenntnisse:
Fortgeschritten
mepeisen ist ein Lichtblickmepeisen ist ein Lichtblickmepeisen ist ein Lichtblickmepeisen ist ein Lichtblickmepeisen ist ein Lichtblickmepeisen ist ein Lichtblick
mepeisen eine Nachricht über ICQ schicken mepeisen eine Nachricht über Skype™ schicken
Standard

Es gab bei uns jüngst Untersuchungen bezüglich neuer Datenbanksysteme und dabei wurde ebenfalls MySQL untersucht. Umfang sind bei uns etwa 200 Mio Datenbank-Transaktionen pro Tag, wenn ich die Intranet-News richtig im Kopf habe. 117 Milliarden Tabelleneinträge erreichen wir glaube ich nicht, aber die 10 Milliarden in einigen Tabellen durchaus.

Jedenfalls kam dort einhellig heraus, dass alle drei hier genannten Systeme bei Massenabfertigung durchaus realistische Antwortzeiten liefern können. Dabei wurden logischerweise entsprechende Cluster-Lösungen untersucht. Sicherlich gab es deutliche Unterschiede bei der Architektur, weswegen das ebenbürtig in Anführungszeichen steht. Oracle und MySQL sind um einiges günstiger im IT-Betrieb, unter anderem, weil sich IBM die großen schwarzen Kisten sehr gut bezahlen lässt.

Es gibt nach wie vor starke Unterschiede im Funktionsumfang und beispielsweise bei Support/Gewährleistung. Da ist die IBM einfach ein anderes Kaliber. Ansonsten war ein Hauptgrund, dass diverse Funktionen, wie Views und Subqueries bei MySQL noch relativ jung sind und daher ein deutlich größeres Risiko besteht. Daher fiel es relativ früh durch das Sieb.

Alleine weil unsere Architektur-Truppe durchaus betonte, dass die Systeme in den Untersuchungen ebenbürtig waren, gehe ich davon aus, dass MySQL nach wie vor gewaltig unterschätzt wird. Erfahrungen fehlen mir leider konkret bei diesen Dimensionen und entsprechende Hardware zum mal ebend ausprobieren habe ich leider auch nicht

Wie gesagt hat MySQL in anderen gebieten Nachteile, die man nicht so ohne weiteres aufholen kann und die gerade bei diesen großen Dimensionen einrfach wichtiger sind...
mepeisen ist offline   Mit Zitat antworten
Alt 13.03.2006, 13:00  
Gast
 
Beiträge: n/a
Standard

Interessantes Thema.

Anderseitsk, kann man solche Datenmengen überhaupt seriös bzw. legal erheben ?
Selbst Amazon und Ebay zusammen dürften soviel nicht zusammenbekommen.
Allenfalls große Telekommunikations-Provider die jeden Müll für selbstbeschäftigungssuchende Behörden mitloggen müssen.

Teilchenbeschleuniger wäre noch ein Fall.....


100 Mio. DB-Transaktionen pro Tag entspricht der Volllast von mindestens 14 gut ausgestatten klasschischen LAMPs

Mit guten Willen bekommt ein klassischer und hardwaremäßig gesteuert LAMP (Linux,Apache, MySQL) 2000 Datensätze pro Sekunde reingezogen.

Eine solche Architektur verbietet sich dann allerdings für die Aufgabe. Da muß dann etwas mehr aufgetragen werden. Alleine schon aufgrund der Datenmenge. Die normalen Systeme haben eine Filegröße von max. 2 GB . Muß also mind. ein 64-bittiges System bzw Filesystem oder besser noch RAW-Device her. Also auch eher abseits der PC-Architekturen, eher was von IBM, Sun oder HP.

Zu trennen ist bei Mysql auch der EInsatz von MyISAM-Tabellen und den InnoDBs. Bei ersteren ist Datentabelle und Index getrennt in jeweils einem File. Von der Geschwindigkeit her tun die beiden sich bei "normalen" Abfragen nicht viel.

MyISAM verbietet sich eigentlich bei so großen Menge deswegen weil die komplette Tabelle für andere Schreiber und zum Teil auch Leser gesperrt wird. Bei vielen parallelen Zugriffen ein echter Flaschenhals. Dann lieber row-level-locking wie InnoDB.

Die Zugriffsgeschwindigkeit auf einzelne durch Index versehene Daten ist bei einem halbwegs ausbalancieren Index kaum zu überreffen. Die verwendeten B*- Bäume sind rattenschnell. Maximal 36 Baumebenen erforderlich um einen gezielten Datensatz zu bergen.
(für 117.000.000.000 datensätze)

Einfach mal hochrechnen wieviel Speicherkapazität erforderlich ist.
Da dürften schon einige Dutzend oder hundert Bytes pro Datensatz zusammenkommen. Paßt natürlich auch nur in ein SAN.


Bei solchen Projekten hat auch der Hersteller mit im Boot zu sitzen. Die "Gewährleistung" muß natürlich auch bezahlt werden.
  Mit Zitat antworten
Alt 13.03.2006, 13:11  
Erfahrener Benutzer
 
Registriert seit: 21.12.2004
Beiträge: 4.651
PHP-Kenntnisse:
Fortgeschritten
mepeisen ist ein Lichtblickmepeisen ist ein Lichtblickmepeisen ist ein Lichtblickmepeisen ist ein Lichtblickmepeisen ist ein Lichtblickmepeisen ist ein Lichtblick
mepeisen eine Nachricht über ICQ schicken mepeisen eine Nachricht über Skype™ schicken
Standard

Zitat:
Zitat von McBang
100 Mio. DB-Transaktionen pro Tag entspricht der Volllast von mindestens 14 gut ausgestatten klasschischen LAMPs
Sicherlich, aber ich spreche hier nicht von einer Web-Anwendung, zumindest nicht im eigentlichen Sinne (Es gibt ein Web-Interface, aber das ist eher unerheblich).

Zitat:
Zitat von McBang
Also auch eher abseits der PC-Architekturen, eher was von IBM, Sun oder HP.
Blackboxen
mepeisen ist offline   Mit Zitat antworten
Alt 13.03.2006, 17:10  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

Zitat:
Interessantes Thema.
Ja.

Wir hatten bei größeren Projekten bisher die Erfahrung gemacht, dass gerade bei Gewinnspielen die im TV beworben werden sekündlich dutzende Eintrage in die DB kommen. Die Eintrags-Dauer wurde für den Besucher inakzeptabel. Das schon bei mehreren hunderttausend Einträgen bereits.
Deshalb überrascht mich, dass MySQL mit hundert Millionen Einträgen so fix umgehen kann (eurer Behauptung nach). Das setzt ja wohl aber eine kostenspielige Hardware-Optimierung voraus.

Bin nicht umsonst nicht MySQL Mod - daher die Frage:
Wie optimiere ich denn MySQL-Tabellen für INSERTs oder UPDATEs?
Reicht es schon, wenn ich für eine Tabelle in die praktisch nur eingetragen wird, auf den Primärschlüssel/Indexe zu verzichten?


Ich befürchte ja, hier sind aber vom Threadstarter nur Phantasien am Laufen (zB alle möglichen md5-Keys zu speichern o.ä.)
Zergling-new ist offline   Mit Zitat antworten
Alt 13.03.2006, 18:14  
Erfahrener Benutzer
 
Registriert seit: 21.12.2004
Beiträge: 4.651
PHP-Kenntnisse:
Fortgeschritten
mepeisen ist ein Lichtblickmepeisen ist ein Lichtblickmepeisen ist ein Lichtblickmepeisen ist ein Lichtblickmepeisen ist ein Lichtblickmepeisen ist ein Lichtblick
mepeisen eine Nachricht über ICQ schicken mepeisen eine Nachricht über Skype™ schicken
Standard

Zitat:
Zitat von Zergling
Deshalb überrascht mich, dass MySQL mit hundert Millionen Einträgen so fix umgehen kann (eurer Behauptung nach). Das setzt ja wohl aber eine kostenspielige Hardware-Optimierung voraus.
Ich meine oben irgendwas von Clustern geschrieben zu haben. Sicherlich sind da einzelne Maschinen überfordert und MySQL für die schwarzen Schränke gibt es glaub ich nicht aber man darf auch nicht unterschätzen, was DB/2 an Hardware-Bedarf bei diesen Dimensionen braucht...
Unsere Blackboxen für die Datenbanken kriegt man nicht so ebend mit einer einzelnen 4-Prozessor-Maschine und vielleicht 2 Gig RAM ersetzt...

Zitat:
Zitat von Zergling
Wie optimiere ich denn MySQL-Tabellen für INSERTs oder UPDATEs?
Reicht es schon, wenn ich für eine Tabelle in die praktisch nur eingetragen wird, auf den Primärschlüssel/Indexe zu verzichten?
Der Primärschlüssel macht nicht direkt einen großen Overhead aus, auch wenn es spürbar schneller werden kann. Das erste ist das Verwenden alternativer Locking-Mechanismen. DB/2 bietet intelligentere Paging und Locking Mechanismen von Haus aus an, aber die muss man auch geschickt nutzen bzw. die Tabelspaces entsprechend vorher geschickt einrichten, sonst wirds gar langsamer wie MySQL. MySQL bietet wie bereits oben stand mit MyISAM per Standard ein für große Datenmengen relativ ungeschicktes Speicher-System an. Das bedeutet aber nicht, dass es nicht inzwischen auch anders könnte.

Generell meine ich oben geschrieben zu haben, dass man natürlich entsprechende Performance-Bremser berücksichtigen muss und im Vorfeld schauen muss, ob man die in den Griff kriegt bzw. nie einfach was daneben stellen darf ohne Grundkenntnisse. Es gibt durchaus genug Anwendungsbeispiele mit deutlich weniger Datensätzen, wo DB/2 ohne gewisse Grundregeln penetrant Indices-Nutzung verweigert und damit Ergebnisse eines Selects etwa in der tausendfachen Zeit holt, als es MySQL tut. War alles schonmal da gewesen.
Und Leutchens wie ich, die aus dem Test ein "Alles arschlangsam" kriegen und dann nicht zuerst "RUNSTATS" im DB/2 laufen lassen, können ein Lied davon singen, dass sie versuchen, was zu beschleunigen, was eigentlich schnell ist *g*
mepeisen ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Zeilenanzahl einer tabelle mit WHERE aber ohne schleife? sovereign Datenbanken 13 17.04.2006 20:34
[Erledigt] Problem mit dem Füllen einer Tabelle über Formular PHP Tipps 2006 18 10.01.2006 12:51
[Erledigt] Problem mit Anzeige einer Tabelle mit dem Firefox? HTML, Usability und Barrierefreiheit 8 28.11.2005 15:08
Tabelle aktualisieren Datenbanken 3 23.11.2005 09:54
Problem mit mySQL Datenbanken 7 27.09.2005 12:06
mysql abfrage über 4 Tabelle - bis 3 geht, bei der 4. habert Datenbanken 2 08.09.2005 11:59
tabelle in tabelle ohne aussenrand noskule HTML, Usability und Barrierefreiheit 6 25.08.2005 14:17
[Erledigt] Tabelle im DIV-Container zentrieren HTML, Usability und Barrierefreiheit 1 21.04.2005 22:28
[Erledigt] Tabelle in Tabelle ausrichten HTML, Usability und Barrierefreiheit 7 03.01.2005 14:32
Auslesen mySQL tabelle und ausgabe als html Calli PHP Tipps 2004-2 3 21.12.2004 16:51
[Erledigt] Ganze Tabelle ausgeben PHP Tipps 2004-2 1 21.11.2004 16:48
[Erledigt] Tabelle in Tabelle automatisch anpassen HTML, Usability und Barrierefreiheit 3 04.11.2004 21:37
Letzter Eintrag in einer Tabelle und Top Five einer Tabelle Datenbanken 2 27.09.2004 06:50
Sortieren anhand einer zweiten Tabelle PHP Tipps 2004 6 20.09.2004 09:03
[Erledigt] HILFE: Column count doesn't match value count at row 1 Datenbanken 17 12.06.2004 16:45

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
datenbank 1 milliarde einträge, geschwindigkeit datenbank mit milliarden einträgen, mysql 1 datensatz pro sekunde, datenbank mit 100 millionen einträgen, mysql große tabellen 1 mrd performance, wie groß ist eine datenbank mit 1 millionen einträgen, mysql datensätze anzahl milliarden, mysql innodb raw optimierung, eine tabele über miliarden, mysql milliarde eintraege, wie groß ist datenbank mit hunderttausend einträge, 200 millionen mysql db einträge, mysql innodb zugriffsgeschwindigkeit, oracle tabelle mit millionen einträgen, mysql tabellen mit milliarden einträgen, oracle tabelle mit millionen einträge, mysql select auf tabelle mit 100 millionen einträgen

Alle Zeitangaben in WEZ +1. Es ist jetzt 19:41 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.