Funktionsweise SELECT

Hi,

ich bräuchte mal Hile. Jeder kennt ja den SQL Befehl SELECT, ich würde mal gerne wisse, wie man sowas implementiert.

Wenn ich z.B. eine Tabelle Person mit 1 Mio. Einträge habe in der Form.

|Vorname|Nachname|Geburtstag| usw

und ich mache ein

SELECT * FROM PERSON WHERE Nachname = "irgendwas", durchläuft Select dann jede Zeile der eine Mio. Einträge oder wie genau sind die Sachen implementiert X(
 
Original von Dawendurchläuft Select dann jede Zeile der eine Mio. Einträge

Nee,
Datenbanken haben immer einen Daten-Index.. so ne Art Inhaltsverzeichnis,
wie des jetzt bei MySQL genau aufgebaut ist weiß ich auch nich.
Sowas braucht viel Speicherplatz, beschleunigt aber das Suchen sehr.

Sonst könnte man ja auch einfach Textdateien nehmen ;)

Erklärung:
http://de.wikipedia.org/wiki/Indexstruktur

Gruß
 
Da muss man sich mit Algorithmen und Datenstrukturen beschäftigen. Man wird wohl nach einem Eintrag kaum linear suchen. Es gibt diverse Tricks wie man schneller etwas findet. Man speichert seine Daten am Besten in einer Baumstruktur oder Hashtable ab. Dann hat man einen Eintrag im Handumdrehen gefunden. Ein fundiertes Wissen über Datenstrukturen ist imho sehr wichtig, nicht nur wenn man eine Datenbank basteln will. Bei den meisten Anwendungen gewinnt man am effizentesten Performance wenn man die richtige Datenstruktur verwendet. Vielen Anfänger ist das vielleicht nicht bewusst, da moderne Programmiersprachen schon viele Fertigkonstrukte anbieten bzw. häufig leistungsfähige Datenbanken eingesetzt werden.

http://de.wikipedia.org/wiki/Datenstruktur
 
Zurück
Oben