Was ist effektiver: Multi Columns Index vs. Multiple Indexes in MySQL 5.6
Kommentare

Indexing bietet in MySQL den einfachsten Weg, schnell an bestimmte Daten zu gelangen. Soweit so gut. Eine Frage, die aber immer wieder aufkommt, ist, welche Form des Indexing man anwenden soll: Multi-Columns

Indexing bietet in MySQL den einfachsten Weg, schnell an bestimmte Daten zu gelangen. Soweit so gut. Eine Frage, die aber immer wieder aufkommt, ist, welche Form des Indexing man anwenden soll: Multi-Columns oder Single Columns.

Genau dieser Frage geht auch der Web-Entwickler Stephane Combaudon nach. Bereits 2008 hatte Peter Zaitsev dies einmal überprüft, damals mit dem Ergebnis, dass Multi Column Index in den meisten Fällen die beste Wahl ist. Aber in den fast 6 Jahren, die seither vergangen sind und besonders den jüngsten Optimierungen, die MySQL erfahren hat, würde man heute noch das gleiche Ergebnis erhalten?  In einem Beitrag auf dem MySQL Perormance Blog untersuchte Combaudon daher kürzlich, inwieweit sich die Optimierungen in MySQL 5.6 auf den Indexing-Prozess auswirken. Dazu erstellt er 2 Tabellen mit je 1000 unterschiedlichen Werten – einmal in Form von Single Columns, das andere Mal als Multi-Columns-Variante.

Das Ergebnis nach mehreren Tests: Indexe auf einer einzelnen Column führen in vielen Fällen dazu, dass sich der Optimizer des index_merge-Access Types bedient, was in der Praxis typischerweise weniger effizient ist, als auf Indexe zuzugreifen, die sich auf mehreren Columns befinden. Dazu kommt, dass sich Index Condition Pushdown unter MySQL 5.6 positiv auf die Effizienz bei Multi-Columns auswirkt.

Die Codebeispiele, sowie nährere Erläuterungen zum Thema findet Ihr in dem oben erwähnten Blog-Artikel

Unsere Redaktion empfiehlt:

Relevante Beiträge

Meinungen zu diesem Beitrag

X
- Gib Deinen Standort ein -
- or -