Maik Görgens: DB_File: HASH oder BTREE

Hallo!

Ich will mit dem Datenbank-Modul DB_File arbeiten.

Da kann man ja in 3 Modis arbeiten. Für mich kommen BTREE und HASH in Frage. Mich würden jetzt die Vor- und Nachteile interessieren.

Hashing ist ja im allgemeinen schneller als BTREE, und wird bei Kollisionen langsamer. Bei mir werden bis zu ca. 60000 Einträge da sein. Kommt man da in Bereiche, wo Hashing schon ungeeignet wird oder ist das noch in Ordnung.

Bei BTREE werden mir die Daten ja nach key sortiert. Was heißt das? Kann ich da dann besonders schnell auf das erste oder letzte Element zugreifen? Gibt es dann von jedem Element eine Art Next-Funktion, auf das nächste Element?

Mich würde halt interessieren, wann ihr welchen Modus bevorzugen würdet und warum.

Vielen Dank und viele Grüße
Maik

  1. 你好 Maik,

    Hashing ist ja im allgemeinen schneller als BTREE, und wird bei
    Kollisionen langsamer. Bei mir werden bis zu ca. 60000 Einträge da
    sein. Kommt man da in Bereiche, wo Hashing schon ungeeignet wird oder
    ist das noch in Ordnung.

    Das haengt von der Hash-Funktion ab.

    Bei BTREE werden mir die Daten ja nach key sortiert.

    Naja, das ist eine sehr unzureichende Erklaerung. Lies mal

    http://de.wikipedia.org/wiki/B-Baum

    Was heißt das? Kann ich da dann besonders schnell auf das erste oder
    letzte Element zugreifen?

    Nein, das heisst, dass du im schlimmsten Fall einen Aufwand von O(ld n)
    hast, also bei 1024 Datensaetzen maximal 10 Vergleiche. Bei 60000
    Datensaetzen waeren das dann maximal 16 Vergleiche.

    再见,
    克里斯蒂安

    --
    Ich bewundere wirklich den Sinn der Bienen für kollektive Verantwortung. Obwohl sich einzelne Bienen hin und wieder bekämpfen, herrscht zwischen Ihnen grundsätzlich ein starkes Gefühl für Eintracht und Zusammenarbeit. Wir Menschen gelten als sehr viel weiter entwickelt, doch mitunter rangieren wir sogar hinter kleinen Insekten.