AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Über Indizes und Schlüssel
Thema durchsuchen
Ansicht
Themen-Optionen

Über Indizes und Schlüssel

Ein Thema von Luckie · begonnen am 31. Jan 2005 · letzter Beitrag vom 1. Feb 2005
 
Robert_G
(Gast)

n/a Beiträge
 
#2

Re: Über Indizes und Schlüssel

  Alt 31. Jan 2005, 02:29
Ein Index wird normalerweise in aufsteigender Reihenfolge abgelegt. Deshalb ind Sortierungen über ein indiziertes Feld meist schneller.
Es gibt aber auch einen gewissen Overhead um vom Index auf den passenden Datensatz zu springen.
Angenommen du hast zum Beispiel 2 Tabellen:
Code:
Master:
PK  integer, -- Primärschlüssel
Name varchar(55)

Detail:
PK       integer, -- Primärschlüssel
FK       integer, -- Fremdschlüssel auf Master.PK
SomeValue varchar(55)
Die Mastertabelle enthält 10 Datensätze, die Detailtabelle 1.000.
Jetzt fragst du in der Detailtabelle alle Datensätze nach einem bestimmten Masterdatensatz ab (zum Bsp.: WHERE FK = 5).
Wenn das Feld FK indiziert ist, muss die DB nur 10 verschiedene Möglichkeiten durchlaufen, da der Index auch noch sortiert ist läuft sie nur die ersten 5 durch.
Das heißt, du hast auf eine sehr ökonomische Art die Ergebnismenge auf ca. 100 Datensätze reduziert.
Eine Indexsuche auf den PK muss nicht schneller sein, da er zu jedem Indexwert den "richtigen" Datensatz suchen muss.
Suchst du zum Beispiel nach ...WHERE (PK between 1 and 5) and Name like 'A%' ...muss er für jede Zeile erst im Index suchen, danach den passenden Datensatz finden um schließlich darin nach dem Namen zu suchen.
Da der Index aber sortiert abgelegt wird, werden Bedingungen, die nur indizierte Felder einschließen massiv schneller.
Ein großer Nachteil von Indizes ist die Tatsache, dass sämtliche Datenänderungen langsamer werden (Die Sortierung muss ja neu aufgebaut werden).
Man muss also immer abwiegen, ob ein Index an dem Feld Sinn macht. Foreign Keys würde ich zum Beispiel immer indizieren, Prim Keys auch (Man greift ja oft direkt über den PK auf die Daten zu).
  Mit Zitat antworten Zitat
 


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 07:22 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