Datenbanken - 3. Semester (Fach) / Indizes (Lektion)

In dieser Lektion befinden sich 19 Karteikarten

Indizes

Diese Lektion wurde von zrah erstellt.

Lektion lernen

Diese Lektion ist leider nicht zum lernen freigegeben.

  • Was ist ein Index? Sie sind Datenstrukturen, die zusätzlich zu Tabellen in der Datenbank angelegt werden, um den Zugriff mittels select auf Datensätze einer Tabelle zu beschleunigen.
  • Mit welchem Statement werden Indizes angelegt? CREATE INDEX indexname ON tabellenname (spaltenname);
  • Welche Statements werden von Indizes beschleunigt? SELECT statements
  • Welche Spalten einer Tabelle besitzen in den meisten Datenbankdistributionen von Haus aus einen Index (bei MySQL 2 Arten)? Spalten, die einen Primärschlüssel enthalten oder UNIQUE sind
  • Welche Spalten sind gute Kandidaten, um einen Index anzulegen, auch wenn man die Anfragen an die Datenbank noch nicht kennt (bei MySQL nicht relevant)? Denken sie an Join-Operationen. > primary keys> foreign keys> eher kurze Spalten> Spalten, in denen die where Klausel verwendet wird
  • Wonach entscheiden Sie auf welchen Tabellenspalten Sie einen Index anlegen? + Index ist sinnvoll, wenn... > ... Zugriffe mittels JOIN und SELECT häufig sind> ... die gespeicherten Datensätze sehr unterschiedlich sind
  • + Auf der Tabelle kunde wurde ein Index angelegt. "create index name_idx on kunde (name);" Wie verwendet man den Index mit SELECT? SELECT name FROM kunde WHERE name = 'Maier’;
  • Bei welchen Datenbankoperationen ist ein Index eine Performancebremse? Wenn eine Tabelle mittels UPDATE aktualisiert wird, dauert dies mit einem Index länger, da auch der Index aktualisiert werden muss.
  • Formulieren Sie für sich, was ein Index bewirkt und wie er funktioniert, so dass es auch ein Laie verstehen könnte. Ein Index kann mit dem Stichwortverzeichnis in einem Buch verglichen werden. Dort steht genau, an welcher Stelle im Buch (in unserem Fall wo in der Datenbank) der gesuchte Begriff steht. Daten aus Tabellen lassen sich dadurch schnell aufrufen.
  • Was beachten sie beim Anlegen von Indizes? Der Index soll einzigartig=unique sein. Es soll kein Index mit dem gleichen Werten bestehen.
  • Welches ist der am häufigsten verwendete Index in relationalen Datenbanken? Unique Index (auf jedem Primary Key)
  • Was ist ein Bitmap-Index? speichert Spaltenwerte in Form von Bitkettenwird bei niedriger Aktualisierungserwartung der zu indizierenden Spalten und geringer Unterschiedlichkeit der Datensätze verwendet. Anzahl der Bits entspricht der Anzahl der Werte, denn das normale Durchsuchen würde ansonsten zeitsparender sein als die indizierte Suche.
  • Was ist ein Funktionaler Index? Es werden mittels Datenbankfunktionen transformierte Werte gespeichert (z.B. to_upper). Die Vergleichsfunktion wird sofort angewendet und der errechnete Wert im Index gespeichert. Der Aufruf der Vergleichsfunktion passiert nur einmal beim Schreiben und muss nicht jedes mal neu erfolgen
  • Was ist ein Reverse Index? Die indizierten Spaltenwerte werden bit- oder byteweise in umgekehrter Reihenfolge als B- Baum gespeichert. Durch das Umkehren der indizierten Werte füllen sich die Lücken automatisch und der Baum wird dadurch nicht unbalanciert (kann bei B+ Bäumen durch das Löschen am Anfang stehender Werte hingegen schon passieren).
  • Was ist ein abdeckender Index? Wenn in einer Anfrage nur bestimmte Spalten einer Tabelle gelesen werden wollen, kann man diese Spalten gleich mit in den Index packen. Dann stehen bereits alle Daten die man lesen möchte im Index und man muss nicht mehr auf die eigentlichen Datenblöcke zugreifen.
  • Was ist ein Clustered Index? Bei clustered Indizes wird in den Leave-Blöcken bereits der gesamte Datensatz gespeichert, im Gegensatz zu normalen B+ Bäumen, die Verweise auf Datensätze enthalten.
  • Was ist ein invertierter Index und wofür wird er verwendet? Auch Volltextindex genannt, hier werden die Positionen der Worte gespeichert. Dadurch können auch Volltextabfragen durchgeführt werden. Mit invertierten Indizes kann man z.B. Arbeitsplatzbeschreibungen mit gespeicherten Lebensläufen oder Fallverläufe in einer Anwaltskanzlei vergleichen.
  • Was ist ein partitionierter Index und was bringt er für die Performance beim Zugriff? Ein Index wird in weitere Indizes partitioniert/unterteilt. Das Teilungskriterium des Index ist gleich dem Teilungskriterium der Tabelle (lokale Partitionierung) oder anderes (globale Partitionierung, bei Oracle möglich). Dadurch können in einer sehr großen Tabelle (1.000.000+ Datensätze) mehrere Operationen gleichzeitig ausgeführt werden und damit die Performance verbessert werden.
  • + Mit welchem Statement kann man überprüfen, ob ein Index auf einen Datensatz in MsSQL wirklich benutzt wird? DESCRIBE, EXPLAIN