Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] Definition "index" & "volltextindex" ?

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • [Erledigt] Definition "index" & "volltextindex" ?

    Guten Tag,

    ich schreibe derzeit eine Fachbereichsarbeit und erkläre anhand einer Beispieltabelle in phpmyadmin den Aufbau der nötigen Datenbank.

    Eigentlich habe ich alle Felder erklärt, jedoch fehlt mir die DEFINITION (in 2-3 Sätzen) von "Index" & "Volltextindex" - nämlich so, dass sie auch jemand, der nicht so die Ahnung davon hat, es verstehen kann.

    Hab schon viel rumgesucht aber nichts wirklich passendes gefunden. Auch div. Bücher lassen das irgendwie aus :$

    Vielleicht kann mir ja dabei jmd helfen....

    lg
    haubi

  • #2
    Ein Index ist eine Suchstruktur. Man kann einen Index über ein oder mehrere Attribute erstellen.

    Angenommen es müssten alle Werte zwischen 120 und 135 gesucht werden (WHERE id >= 120 AND id <= 135) dann müsste eine Datenbank ohne Index alle Datensätze durchgehen und bei jedem prüfen ob die ID in dieser Spanne liegt. Also lineare Laufzeit O(n).

    Angenommen ein Index wurde über dieser Spalte erstellt, in den meisten Fällen ein B+ Baum, hast du nur noch eine Laufzeit von log(t) n (t ist die Basis des Logarithmus und ist je nach DB System unterschiedlich, oft in Größenordnungen 50-100) um das niedrigste Element in dieser Spanne (120-135) zu finden. Denn bei einem B+ Baum sind die einzelnen Werte alle in den Blättern ganz unten im Baum. Und da ein B+ Baum balanciert ist hast du für jedes Element dass du finden willst die selbe Zugriffszeit. Da alle Elemente miteinander in einer verketteten Liste stehen (diese ist sortiert weil ja der B+ Baum sortiert ist) kannst du, nachdem du das erste Element gefunden hast, einfach die Elemente dahinter auslesen (die noch kleiner als 135 sind) und hast somit alle gefunden.

    Ein Index beschleunigt also die Suchanfrage auf eine Datenbanktabelle enorm.

    Zum B+ Baum kannst du hier Wikipedia nachlesen.

    Mich würde deine Facharbeit interessieren. Würdest du mir diese mal zur Verfügung geben dass ich darein schauen kann?

    Kommentar


    • #3
      hey, danke für die antwort! gibts einen entscheidenden unterschied zwischen "index" & "volltextindex"?

      die arbeit ist mein matura (abitur) projekt und handelt von meinem cms, dass ich im letzten jahr entwickelt habe (nichts besonders großes und kompliziertes, aber nette arbeit für einen php-einsteiger, denke ich )

      da sie sowieso veröffentlicht wird, kann ich sie dir in den nächsten tagen auch schicken


      lg
      haubi

      Kommentar


      • #4
        Bei einem normalen Index werden die Werte so genommen wie sie sind und in einem B+ Baum sortiert gespeichert. Heißt 1 < 2 < 3 <4 etc. und bei Wörtern eben lexikographisch abc < acb < bac und so weiter. Daher kannst du nur nach dem kompletten Wert in einem Index suchen also nach 3 oder nach acb zum Beispiel.

        Wenn du jetzt einen Text hast, wirst du nicht nach dem kompletten Text suchen wollen sondern eben nur nach einzelnen Wörtern die im Text vorkommen.

        Und jetzt bin ich mir nicht ganz sicher, allerdings glaube ich dass bei einer Volltextsuche (also beim Volltextindex) der Text in die einzelnen Wörter getrennt wird und jedes einzeln Indiziert wird. Also jedes Wort einzeln abgespeichert wird. Wenn du jetzt nach verschiedenen Wörtern suchst bekommst du halt angezeigt in welchem Text welche Wörter enthalten sind.

        Kommentar

        Lädt...
        X