AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Erklärung von einem "INDEX"
Thema durchsuchen
Ansicht
Themen-Optionen

Erklärung von einem "INDEX"

Ein Thema von Overclocker · begonnen am 20. Aug 2008 · letzter Beitrag vom 20. Aug 2008
Antwort Antwort
Overclocker

Registriert seit: 10. Jan 2007
215 Beiträge
 
#1

Erklärung von einem "INDEX"

  Alt 20. Aug 2008, 11:49
Datenbank: access • Zugriff über: ado
hey,

der eine lacht vielleicht jetzt aber ich meine diese frage ernst.

und zwar habe ich im inet (u.a. auch wikipedia) schon viel über den INDEX in einer datenbank gefunden und gelesen.

doch irgendwie fehlt mir hierzu einfach der praxisbezug an einem einfachen beispiel.

ein primary key identifiziert ja einen datensatz eindeutig und hat keine duplikate.

wenn ich jetzt eine datenbank habe mit personen, und der index liegt auf der spalte id_person, was bringt mir dies dann?

wenn ich später eine abfrage mache Select Name,Vorname,Adresse, PLZ,Ort from personen where name like "%Hans%" , was bringt mir dann der index bzw. was müsste ich besser machen damit es mir was bringt???

hoffe es kann mir einer einfach erklären

dankeschön
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Erklärung von einem "INDEX"

  Alt 20. Aug 2008, 11:56
Ein Index ist wie eine Art Inhaltverzeichnis anhand der beinhaltenden Felder.

Tabelle
ID Vorname Name Strasse Plz Ort
1 Hans Mayer Hauptstr. 1 12345 Musterort
2 Elke Mayer Hauptstr. 1 12345 Musterort
3 Hans Müller Seitenweg 5 54321 Testbach

Index über Vorname
Wert DS
Elke 2
Hans 1
Hans 3

Index über Name
Wert DS
Mayer 1
Mayer 2
Müller 3

Bei deiner Like-Abfrage wird aber kein Index verwendet.
Markus Kinzler
  Mit Zitat antworten Zitat
Overclocker

Registriert seit: 10. Jan 2007
215 Beiträge
 
#3

Re: Erklärung von einem "INDEX"

  Alt 20. Aug 2008, 11:59
und wieso ändert sich die reihenfolge des indizes wenn ich 1x vorname habe und 1x name?

am besten ist doch wenn ich über die spalte vorname und name einen index mit duplikaten setze, dann erstellt er mir sozusagen ein inhaltsverzeichnis mit id_person,name,vorname oder?

gut zum glück sind in meiner datenbank die wichtigsten felder eh PKs und schon indiziert, dann muss ich nachträglich nichts mehr großartig ändern.

danke mkinzler für die erklärung
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: Erklärung von einem "INDEX"

  Alt 20. Aug 2008, 12:02
Es ist nach Vorname bzw. Name sortiert.
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#5

Re: Erklärung von einem "INDEX"

  Alt 20. Aug 2008, 12:02
Oder ein anschauliches Beispiel:
Du möchtest bei einem großen Versandhaus Bettwäsche bestellen. Nun kannst Du den 1500-Seiten-Katalog von vorne an durchblättern, bis Du das Gesuchte gefunden hast oder schaust hinten im Index unter "B", dann unter "Bettwäsche" und findest dort die Seitennummer, die Du dann gezielt anblättern kannst.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Overclocker

Registriert seit: 10. Jan 2007
215 Beiträge
 
#6

Re: Erklärung von einem "INDEX"

  Alt 20. Aug 2008, 12:07
ah ok glaub etz blick ichs langsam wann und wo man einen index setzen muss

dankeschön für die guten beispiele


  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#7

Re: Erklärung von einem "INDEX"

  Alt 20. Aug 2008, 13:16
Übrigens nützt Dir bei einer Abfrage
Zitat:
...where name like "%Hans%"
auch kein Index weiter, da so immer ein Full table Scan durchgeführt werden muss.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#8

Re: Erklärung von einem "INDEX"

  Alt 20. Aug 2008, 13:35
Zitat von DeddyH:
Übrigens nützt Dir bei einer Abfrage
Zitat:
...where name like "%Hans%"
auch kein Index weiter, da so immer ein Full table Scan durchgeführt werden muss.
#2
Markus Kinzler
  Mit Zitat antworten Zitat
Namenloser

Registriert seit: 7. Jun 2006
Ort: Karlsruhe
3.724 Beiträge
 
FreePascal / Lazarus
 
#9

Re: Erklärung von einem "INDEX"

  Alt 20. Aug 2008, 13:49
Ich weiß nicht, wie es bei Access ist, aber bei MySQL kann man auch einen Volltext-Index anlegen, der zwar geschwindigkeitsmäßig auch noch nicht ganz ausgereift sein soll, aber immer noch schneller als eine LIKE-Abfrage sein sollte. Es kommt aber natürlich auf die Datenmenge an, ob sich so ein Index lohnt.

Du kannst dich ja mal schlau machen, ob Access eine ähnliche Funktion bietet.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:07 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz