Daten-Cluster: Die zweite Macht der Indizierung


Der Begriff „Cluster“ wird in vielen Fachgebieten benutzt und bedeutet so viel wie „Anhäufung“ oder „Haufen“. So können in der Astronomie bei­einanderliegende Sterne einen Sternen-Cluster bilden. In der EDV spricht man von einem Computer-Cluster als Verbund von Computern, die eng zusammenarbeiten, um gemeinsam ein Problem zu lösen (High Per­for­mance Computing Cluster) oder die Verfügbarkeit zu erhöhen (Failover-Cluster). Der Begriff „Cluster“ beschreibt also ganz generell zu­sam­men­gehörige Dinge.

In der Informatik gibt es aber noch andere Cluster: die Daten-Cluster. Diese ordnen Daten so an, dass der Zugriff auf zusammengehörige Daten möglichst effektiv ist. Daten-Cluster sind daher ein wichtiges Mittel zur Optimierung von Datenbanken. Im Zusammenhang mit Datenbanken sind aber auch Computer-Cluster verbreitet. So könnte der Satz „Verwende einen Cluster, um die Datenbank-Performance zu verbessern“ sowohl einen Computer-Cluster als auch einen Daten-Cluster meinen. Um dieser Verwirrung vorzubeugen, sei angemerkt, dass ein Cluster in diesem Ka­pi­tel stets einen Daten-Cluster bezeichnet.

Die einfachsten Daten-Cluster in relationalen Datenbanken sind die Zeilen einer Tabelle. Sie werden – wenn möglich – im selben Datenblock abge­speichert. Nur wenn eine Zeile nicht in einen einzelnen Datenblock passt, wird sie auf mehrere aufgeteilt. Das ist vor allem bei LOB-Spalten der Fall.

Spaltenorientierte Datenbanken

Spaltenorienterte Datenbanken, auch Column-Store genannt, spei­chern Tabellen spaltenweise ab. Die Vorteile dieser Methode über­wie­gen, wenn viele Zeilen, aber nur wenige Spalten abgefragt werden. Dieses Muster ist vor allem im Data-Warehouse(OLAP)- oder Business-Intelligence-Umfeld verbreitet.

Indizes bieten die Möglichkeit Daten gezielt zu clustern. Das zu­grun­delie­gende Konzept wurde bereits in Kapitel 1, „Anatomie eines SQL Indexes, vorgestellt: Ein Index ist eine sortierte Form der indizierten Daten. Ähnliche Werte werden nebeneinander abgelegt. Das bedeutet, dass ein Index einen Cluster aus Zeilen mit ähnlichen Werten bildet. Diese Fähigkeit, Daten zu clustern, ist so wichtig, dass ich sie als die „zweite Macht der Indizierung“ bezeichne.

Beachte

Das Durchwandern des Baumes ist die erste Macht der Indizierung.

Clustering ist die zweite Macht der Indizierung.

Die folgenden Abschnitte erklären, wie man diese Macht nutzt, um die Abfragegeschwindigkeit zu verbessern.

Wenn dir gefällt, wie ich die Dinge erkläre, wirst du meine Kurse lieben.

Über den Autor

Photo of Markus Winand
Markus Winand stimmt Entwickler auf SQL-Performance ein. Er hat das Buch SQL Performance Explained veröffentlicht und bietet inhouse Schulungen sowie Tuning-Leistungen auf http://winand.at/ an.