Daniela Koller: Effizienz-Vergleich MySQL-Eintrag vs. Datei-Eintrag

Beitrag lesen

Hi Ilja

was die ausführung beschleunigt, solch einen cache gibt es bei den dateien nicht, sprich wenn ich kein dbms benutze. hier muss ich jedesmal aufs neue herausfinden, wie ich am besten vorgehe, selbst wenn es die gleiche anweisung ist, es sei den, ich gehe immer gleich vor, was aber zwangsläufig auch performance kosten würde.

Nein, genau eben nicht. Christian redet die ganze Zeit von sehr genau definierten Daten. Da kann man sehr wohl Zugriffsmethoden wählen die in jedem Fall die besten sind.

und das die beste geschwindigkeit keinen festen algorithmus besitzt, dass muss ich ja nicht erst erwähnen oder ? es nützt mir also wenig, wenn ich auf eine datenstruktur immer algorithmus A anwende, weil je nach datenbestand sich das ändern kann.

Nein, du hast die Voraussetzungen für Christians Ansatz nicht gelesen. Wie die Daten genau aussehen und welcher Algorithmus dafür optimal ist, steht fest weil es klar ist wie die Daten aussehen.

Herjemine. Sortierte Daten halt. Warum sollte es langsamer sein?

hast du eine ahnung, was das an zeit kostest, unsortierte daten zu sortieren ? alle reinladen und sortieren ist zig mal langsamer als einen index zu benutzen, ausser besimmte fälle wie wenige daten, etc.

Wiederum Voraussetzungsfrage. Daten können sehr wohl immer sortiert vorliegen wenn es die Applikation so vorgibt und es sich natürlich ergibt.

und ich habe dir schon mal erklärt, dass du nur eine sorierung physisch abbilden kannst, es aber die praxis ist, dass datenstrukturen mehrere sortierungen brauchen.

Nein, kommt sehr auf die Anwendungen drauf an. Logdaten zb brauche ich nur in der zeitlichen Auswertung, einen Index für ein Buch hingegen nur in der alphabetischen.

erstens ist es ein unterschied, ob ich einen index neu sortiere oder den kompletten datenbestand. und wir reden ja von effizienz. zweitens hat eine dbms dafür bestimmte mechanism, damit eben nicht jedesmal der index neu erstellt werden muss und er sogar online neu erstellt werden kann und zwar unter zuhilfenahme des alten.

Diese Mechanismen haben nichts mit DBMS zu tun sondern sind ganz gewöhnliche Baumalgorithmen...

Lies am besten mal ein gutes Buch über Algorithmen und
Datenstrukturen.

welche auch in den datenbanken implementiert sind. als ob man diese nicht bei dbms nutzen könnte. ist doch kein vorteil der blossen datei-haltung.

Jein, DBMS müssen diese Algorithmen abstrakter implementieren als es einem Entwickler möglich wäre, der etwas nur für eine genau spezifizierte Datenmenge und Datenart braucht.

[ ] leider hast du meine aussagen nicht verstanden und die besagt, ohne die mechanism von dbms sind bestimmte otpiermierungen bezüglich der schnellingkeit nicht zu nutzen und das wird die datenverwaltung erheblich langsamer machen. datenbanken sind mehr als einfach nur eine verallgemeinerung. sie bieten, und jetzt kommt der entscheidene satz, ZUSÄTZLICHE möglichkeiten der optimerung an.

Falsch, jede einzelne dieser Optimierungen kann man auch angepasst an die Daten implementieren. Ob das sinnvoll ist, kommt auf den Anwendungsbereich und die Daten an.

insofern stimmt deine aussage nicht. der clou der dbms ist, dass man nicht mehr direkt auf die daten zugreift. ich kann den logischen schritt nachvollziehen, dass du nun sagtst, dass kostet mich erst einmal performance. ABER durch diesen umweg gewinnt man eine ganze menge andere vorteile und unter dem strich ist das wesentlich effektiver.

Jein, wiederum kommt es sehr auf die Daten und den Anwendungszweck an ob es effektiver ist. Das ist der Unterschied btw zwischen einem Datenarchitekten und einem Datenbank- oder XML-Architekten. Der Datenarchitekt entscheidet anhand der Anwendung und der Daten was für den jeweiligen Fall die beste Lösung unter Berücksichtigung was in Zukunft mit den Daten und der Anwendung passieren kann an Änderungen und Ausbauten.

doch genau das war meine aussage. dbms müssen änderungen nicht sofort auf platte schreiben, du musst das tun.

Doch, müssen sie, was glaubst du wo Transaktionslogs und solche Spässchen liegen?

nein hast du nicht, solange du direkt auf daten zugreifst. versuche das zu verstehen, dass dies ein nachteil ist, der sich auch auf die performance auswirkt und zwar negativ.

Das ist einfach nur Humbug. Zu Absolut, zu nichtssagend. Beides hat Vor- und Nachteile die es genau gegeneinander abzuwägen gilt.

Gruss Daniela