Hallo,
so, vermutlich letztes Posting bevor ich ins Bett gehe...
Nein. Hier ist Datensicherheit nicht so wichtig, dass man den Einsatz eines RDBMS und die
damit verbundenen Performance-Einbussen rechtfertigen koennte.Da es IMHO keine Performance-Einbußen geben würde, schon.
Die gibt es aber. Mach doch deine eigenen Benchmarks, wenn du mir nicht vertraust, tse.
Ja, sowas ähnliches habe ich gestern schon gemacht. Halt seeehr
vereinfacht und naiv.
Ich habe eine Tabelle mit einem kleinen Programm mit Pseudo-Postingdaten
befüllt. 400.000 Postings waren das in ca. 7 Minuten -- geschätzt.
Die Datei war dann 2 GB groß... MySQL...
Der Posting-Text war zufällig gewählt und zwischen 10 und 100KB groß.
Jeder Thread hatte ungefähr 60 Kinder. Natürlich nicht direkte Kinder,
sondern auch Kindeskinder usw.
Jedes Posting hatte einen Primary Key und einen zusätzlichen Index.
Wie lange ein Insert dauerte, kannst du dir ungefähr ausrechnen.
(Dabei ist zu erwähnen, daß für jedes Posting vorher ein Byte-Array
mit zufälligen Buchstaben befüllt wurde, was bei der Menge an
Postings durchaus einen nicht unerheblichen Anteil der Verarbeitungs-
Dauer ausgemacht haben dürfte.)
1000 nacheinander ausgeführte Selects zur Ermittlung aller ca. 60
Postings eines Threads dauerte zusammen 2 Sekunden. (Ich habe mir
allerdings nur die ID des Postings liefern lassen, nicht etwa den
Content.)
Diese waren natürlich noch unsortiert und hätten natürlich noch
durch eine entspr. Programmroutine in ihre hierarchische Form gebracht
werden müssen. (Hier sehe ich übrigens das größte Performanceproblem.)
Ein Update habe ich nicht probiert.
Aus dem -- zugegebenermaßen sehr naiven Vorgehen -- schließe ich
ganz frech, daß die Performance durch die Verwendung einer Datenbank
definitiv nicht leiden würde. Ganz im Gegenteil.
Hehe, dann kommst du schnell an deine Grenzen. Das habe ich ja schon gemerkt, obwohl ich
die Daten nicht direkt geschrieben habe, sondern nur zyklisch. Das Forum hatte Anfangs
durchaus auch Performance-Probleme.
Und das kann ich mir -- wenn überhaupt -- nur dadurch erklären, daß
das Schreiben von Dateien (inkl. Serialisieren) nicht so schnell
geht wie das Schreiben in eine Datenbank.
Oder was meinst du?
Nein. Sie speichern nur auch in Dateien.
Und was bitte ist der Unterschied zwischen Textdateien und Dateien? ;-) Genau, gar
keiner, danke, das wollte ich hoeren.
Natürlich nicht. Mir ging es um das Handling.
vielen kleinen Dateien, in denen bruchstückhaft Informationen
abgelegt werden.Also das MySQL-System -- pro Tabelle eine Datei ;-))
Macht ja nix, solange du alle Postings in eine Tabelle packst, hast
du nur eine Tabelle. ;-)
(Übrigens sprach ich von kleinen Dateien... :-))
Ob in diesen Dateien tatsächlich Text steht oder
Binärdaten, ist irrelevant. Es ging um das Handling. Also darum, daß
Textdateien bei Änderungen erst gelöscht und dann komplett neu
geschrieben werden.)Ehm, reichlich seltsame Definition von Textdateien. Das solltest du vorher dazu schreiben.
Naja, ich habe mehrfach erwähnt, daß ich das meine.
Ich sagte nicht, daß es performance-kritisch sei, Daten in Dateien
zu schreiben. Genau das tut nämlich eine Datenbank.Eben_t_.
Hey, lies alles, was ich schreibe. Ich schreibe, daß das Handling
einzelner (Text-)Dateien performance-kritisch ist, weil ganze
Dateien neu geschrieben werden müssen, und nicht nur einzelne Bits
auf der Platte neu gesetzt werden.
Mh?
Es spielt eine Rolle, wie ich die Daten speichere, wenn sie direkt gespeichert werden, wenn
sie hereinkommen. Wenn ich sie direkt in XML speichern wuerde, dann waere der Overhead in
der Tat wirklich zu gross.
Ist das so? Ja? Eigentlich hätte ich jetzt erwartet, daß du sagst, daß
er nicht so groß sei.
Hehe, nein, bin ich nicht. Eigentlich mache ich äußerst selten etwas
mit Datenbanken.Dann bin ich ja beruhigt ;-)
:-p
Gruß
Slyh