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

Beitrag lesen

Hi Ilja

Bevor du weiterliest, Anwendung meint in diesem Text immer der Nutzen, Zweck, Anwendung der Daten. Also nicht Programm sondern globaler gesehen.

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.

falsch, bei gleicher detanstruktur kann ein und derselbe algorithmus gut oder schlecht sein, je nachdem wieviele datensätze ich besitze und dann auch noch in abhängigkeit davon, welche daten drinne stehen. wenn das nicht klar ist, warum das so ist, lege ich es gerne da.

Daten beinhaltet nicht nur Datenstruktur sondern auch Datenmenge und ein Haufen anderer Sachen. Wenn ich Datenstruktur meine, dann schreibe ich Datenstruktur.

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

dann zeige mir doch mal, wie mehr als eine sortierungen nur mit hilfe einer datendatei physisch dargestellt werden. das geht nämlich nicht.

Es gibt Daten die verlangen nur nach einer Sortierung.

nein, die frage der sortierung beruht darauf, wie die daten abgerufen werden. und abfragen gibt es in der unterschiedlichsten form. deine eine will datensätze haben, die in einem zeitraum liegen und der andere will die daten nach einem bestimmten namen abfragen. dies würde zwei sortierungen benötigen, wenn nicht ein full scan durchgeführt werden soll.

Nein, eben genau nicht, das ist genau die Voraussetzung. Nicht alle Daten wollen nach unterschiedlichen Kriterien gefiltert werden. Die Anwendung der Daten schreibt vor ob überhaupt und wie gefiltert werden kann.

und das ist ein denkfehler, wie weiter oben beschrieben. selbst bei nur einer datenstruktur muss man auch allgemein programmieren, um den besten auszuführen, da man ja nicht bei der programmierung den inhalt und die anzahl der daten kennt.

Doch, es gibt Anwendungen, da hat man sehr genaue Informationen über die Daten, inklusive Mengen, Arten, Beziehungen, genaue Datenstrukturen... (Falls dir noch was einfällt was bei Daten variabel sein kann, auch das kann bekannt sein)

nein, hast du mehrere benutzer/programme, die auf die daten zugreifen, dann musst man die datenänderungen immer sofort festschreiben. ein dbms muss das nicht. das ist ganz unzweifelhaft ein vorteil, den man ohne dbms nicht kann.

Nein, die habe ich nicht zwangsläufig. Die Daten und Anwendungen schreiben mir das evtl vor, evtl aber auch nicht.
Warum schreibst du mir viele Benutzer vor wenn meine Anwendung die per Definition nicht haben kann?

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

nö, ein dmbs schreibt daten nicht sofort auf die platte, wenn eine tranksaktion abgeschlossen ist. dies geschieht zum beispiel erst be einem checkpoint.

Ehm, was glaubst du was ein Checkpoint ist? Achja, der Abschluss der Transaktion. Und wo liegen die Änderung die innerhalb einer Transkation geschrieben werden? Ja, auf der HD, weil nur dann kann man Rollforwards und Rollbacks machen wenn ein kleineres Malheur passiert. Btw schreiben Datenbanken manchmal auch direkt in die Datenbank und halten unfertige Transaktionen in Form von Rollback-Logs fest und Rollen sie zurück falls die Transaktion fehlschlägt. Hängt auch sehr vom DBMS ab und auch von den Einstellungen am DBMS ab.

Weist du was das Problem ist? Du schreibst allen Anwendungen vor, die Fähigkeiten eines DBMS zu benötigen. Das ist aber nicht so. Ob ein volles DBMS benötigt wird, sagen nur die Daten und die Anwendung aus. Wenn nur minimalste Teile eines DBMS benötigt werden weil die Anwendung einfach nicht mehr braucht und auch nicht mehr brauchen wird, dann ist es manchmal auch sinnvoller, nur diese kleinsten Teile zu schreiben die man braucht.

Gruss Daniela