Engineering Kiosk

#269 Performance-Basics: Indexstrukturen, Cache-Lokalität & Zugriffsmuster


Listen Later

Index drauf und fertig. Klingt nach einem soliden Plan, oder? Leider nur so lange, bis die Daten wachsen, der Workload kippt oder der Optimizer plötzlich andere Entscheidungen trifft. Dann wird aus dem vermeintlichen Performance-Booster schnell ein Bremsklotz. Genau hier steigen wir in dieser Episode ein und schauen uns an, warum Indexstrukturen in Datenbanken viel mehr sind als ein technischer Quick Fix.

Wir sprechen darüber, was ein Index eigentlich ist, wie Datenstruktur, Algorithmus, Hardware und Workload zusammenhängen und warum Begriffe wie Selektivität, Kardinalität, Full Table Scan, Write Amplification und Cache-Lokalität in der Praxis entscheidend sind. Außerdem schauen wir auf typische Datenbank-Themen wie Primary Key, B-Tree, Binary Search, Covering Index, Optimizer, Slow Query Log und Explain Statements. Dabei wird auch klar, warum ein Index manchmal hilft, manchmal ignoriert wird und manchmal sogar langsamer ist als gar kein Index.

Wenn du mit PostgreSQL, MySQL, MariaDB oder ganz allgemein mit Datenbank-Performance arbeitest, bekommst du hier ein solides Fundament und einige praktische Denkanstöße für deinen Alltag als Softwareentwickler:in. Und ja, wir sprechen auch über Invisible Indexes in MySQL. Ein Feature, das fast wie ein Zaubertrick klingt, aber beim Testen und beim sicheren Aufräumen von Legacy-Systemen überraschend praktisch sein kann. Viel Spaß beim Hören und vielleicht beim anschließenden Blick auf dein Datenbankschema.


Unsere aktuellen Werbepartner findest du auf https://engineeringkiosk.dev/partners


Das schnelle Feedback zur Episode:

👍 (top)  👎 (geht so)


Anregungen, Gedanken, Themen und Wünsche

Dein Feedback zählt! Erreiche uns über einen der folgenden Kanäle …

  • EngKiosk Community: https://engineeringkiosk.dev/join-discord 
  • LinkedIn: https://www.linkedin.com/company/engineering-kiosk/
  • Email: [email protected]
  • Mastodon: https://podcasts.social/@engkiosk
  • Bluesky: https://bsky.app/profile/engineeringkiosk.bsky.social
  • Instagram: https://www.instagram.com/engineeringkiosk/


Unterstütze den Engineering Kiosk

Wenn du uns etwas Gutes tun möchtest … Kaffee schmeckt uns immer 

  • Buy us a coffee: https://engineeringkiosk.dev/kaffee


Links
  • Engineering Kiosk Meetups: https://engineeringkiosk.dev/meetup/
  • Workingdraft Podcast: https://workingdraft.de/
  • Engineering Kiosk Episoden zum Thema Kommunikation: https://engineeringkiosk.dev/tag/kommunikation/
  • Engineering Kiosk Episoden zum Thema Datenbanken: https://engineeringkiosk.dev/tag/datenbanken/
  • Engineering Kiosk Episode #151 Räumliche Indexstrukturen: Grundpfeiler in Geo-Systemen, Games und Machine Learning: https://engineeringkiosk.dev/podcast/episode/151-r%C3%A4umliche-indexstrukturen-grundpfeiler-in-geo-systemen-games-und-machine-learning/
  • Engineering Kiosk Episode #255 Die DB skaliert nicht! OLTP vs. OLAP, Row vs. Column Stores, Parquet, CSV, Iceberg, DuckDB: https://engineeringkiosk.dev/podcast/episode/255-die-db-skaliert-nicht-oltp-vs-olap-row-vs-column-stores-parquet-csv-iceberg-duckdb/
  • Very Large Databases Konferenzen: https://vldb.org/
  • Engineering Kiosk Episode #265 One Billion Row Challenge: Java mit mmap, Unsafe & richtig vielen Bit-Tricks: https://engineeringkiosk.dev/podcast/episode/265-one-billion-row-challenge-java-mit-mmap-unsafe-richtig-vielen-bit-tricks/
  • Bitmap-Index: https://de.wikipedia.org/wiki/Bitmap-Index
  • Invisible Indexes: https://dev.mysql.com/doc/refman/8.4/en/invisible-indexes.html


Sprungmarken

(00:00:00) Indexstrukturen in Datenbanken: Warum das Thema wichtig ist

(00:04:39) Was ein Index wirklich ist: Datenstruktur, Hardware und Workload

(00:06:46) Info/Werbung

(00:07:46) Was ein Index wirklich ist: Datenstruktur, Hardware und Workload

(00:14:57) Skalierung, Dataset-Änderungen und Observability für Indizes

(00:21:38) Primary Key, Full Table Scan und binäre Suche einfach erklärt

(00:25:51) Wann ein Index schadet: Selektivität, Kardinalität und Optimizer

(00:31:04) Wie Datenbanken Indizes auswählen und Optimizer-Entscheidungen treffen

(00:40:53) Hauptspeicher vs. Sekundärspeicher: B-Baum und Binärbaum

(00:50:23) Praxis-Tipps für Index-Design in PostgreSQL, MySQL und Co.

(00:55:24) Legacy-Systeme, Monitoring und sichere Änderungen an Indizes

(01:03:14) Invisible Indexes in MySQL: Performance testen ohne Risiko


Hosts
  • Wolfgang Gassler (https://gassler.dev
  • Andy Grunwald (https://andygrunwald.com/)


Community

Diskutiere mit uns und vielen anderen Tech-Spezialist⋅innen in unserer Engineering Kiosk Community unter https://engineeringkiosk.dev/join-discord

...more
View all episodesView all episodes
Download on the App Store

Engineering KioskBy Wolfgang Gassler, Andy Grunwald