Christian Kruse: Effizienz-Vergleich MySQL-Eintrag vs. Datei-Eintrag

Beitrag lesen

Hallo Ilja,

Der Grund, warum Datenbanken verwandt
werden, ist der, dass solche Algorithmen a) kompliziert zu
implementieren sind und b) relativ vielen Einschränkungen
unterliegen (z. B. fixe Datenlänge).

nein, dass sehe ich ganz anders. datenbank haben primär den grund,
um datenunabhängigkeit zu schaffen.

Das geht recht problemlos auch mit Dateien.

ABER, will man das, immer alle daten lesen und immer alle daten
eines Datensatzes reinschreiben ?

Du hast mich nicht verstanden. Das ist doch gar nicht nötig. Bei
einer fixen Datensatzlänge weiss ich genau, wo ich schreiben oder
lesen muss. Da muss ich immer höchstens *einen* Datensatz lesen,
bei einer Suche etwas mehr (abhängig vom Sortier-Verfahren). Und ich
muss auch nur höchstens *einen* Datensatz schreiben, uU sogar nur
einen *Teil* des Datensatzes. Was meinst du, wie eine Datenbank das
macht? Die macht das genau so, nur verallgemeinert.

wenn man das nämlich nicht will, dann wird die datenbank schneller
sein, es sein denn, man macht genau das gleiche, was auch eine
datenbank macht, zum beispiel indizes anlegen.

Indizes sind ein Hinweis für die Datenbank, dass es sich hier lohnen
kann, auf eine andere Art als linear zu suchen. Das heisst, bei einer
eigenen Umgebung brauche ich keine Indizes. Da kann ich selber
entscheiden, wie ich suche. Ob binär, ob per Hash-Index, das bleibt
völlig mir überlassen.

such mal aus 1 millionen datensätze einen bestimmten eintrag ohne
einen solchen indize zu besitzen. eine blosse dateispeicherung wird
das nämlich nicht tun.

Das brauche ich auch nicht.

und dann wirst du sehen, dass eine datenbank um ein vielfaches
schneller ist.

Nein. Bei einer binären Suche z. B. wird der Aufwand logarithmisch,
da sind maximal ln 1000000 / ln 2 = 20 Vergleiche notwendig.

und auch beim schreiben muss eine datenbank nicht immer gleich alle
daten schreiben, sondern eben nur die wirklich neuen,

Dito bei Dateien.

Wirklich, der einzige Grund, warum man Datenbanken benutzen sollte
ist der, dass wenige Leute das auch noch wirklich so hinkriegen und
es eine Heidenarbeit ist.

Grüße,
 CK

--
Mit einem Windhauch kannst du das Feuer loeschen. Mit einem Windhauch kannst du das Feuer entfachen.