Interviewfragen zu Datenbanken (Senior) mit Antworten
75 Fragen fürs Vorstellungsgespräch zu Datenbanken (Senior) mit richtigen Antworten, Erklärungen und Links zur Dokumentation.
Diesen Test machen- 1.Wie entscheidet PostgreSQL, ob eine Zeilenversion für eine Transaktion sichtbar ist?
- 2.Was ist Transaction-ID-Wraparound, und warum ist er gefährlich?
- 3.Was ist Table Bloat, und was verursacht ihn meist?
- 4.Wozu dient das Write-Ahead-Log (WAL)?
- 5.Was gibt man mit
synchronous_commit = offauf? - 6.Wie unterscheiden sich Speicher-Engines mit B-Baum und mit LSM-Baum beim Schreiben?
- 7.Warum tun sich zeilenorientierte Datenbanken mit Analyseabfragen über Milliarden Zeilen schwer?
- 8.Warum können zu viele Indizes einer schreiblastigen Tabelle über den Plattenplatz hinaus schaden?
- 9.Was ist Write Skew?
- 10.Wie setzt PostgreSQL die Stufe Serializable um?
- 11.Wie baut man auf PostgreSQL eine Job-Queue, die viele Worker sicher abfragen?
- 12.Was sind Advisory Locks in PostgreSQL?
- 13.Viele Anfragen aktualisieren dieselbe Zählerzeile (
UPDATE stats SET views = views + 1 WHERE id = 1). Was ist das Problem und eine Lösung? - 14.Warum sollte man die Eindeutigkeit eines Idempotenzschlüssels per Eindeutigkeitseinschränkung durchsetzen statt per „prüfen, dann einfügen“?
- 15.Warum reicht eine verteilte Sperre in Redis (etwa Redlock) allein nicht aus, um die Korrektheit von Daten zu schützen?
- 16.Was ist der Kompromiss zwischen synchroner und asynchroner Replikation?
- 17.Ein Nutzer ändert sein Profil und sieht sofort die alten Daten. Lesezugriffe gehen an Replicas. Was ist das Problem und die Lösung?
- 18.Was erlaubt logische Replikation, was physisches Streaming nicht kann?
- 19.Was ist Change Data Capture (CDC)?
- 20.Was ist „Split Brain“ in einem Failover-Setup?
- 21.Was bedeuten RPO und RTO?
- 22.Wann hilft Tabellenpartitionierung in PostgreSQL am meisten?
- 23.Was macht einen guten Shard-Schlüssel aus?
- 24.Warum nutzt man Consistent Hashing in verteilten Datenspeichern?
- 25.Welche Probleme entstehen, sobald Daten über Datenbanken geshardet sind?
- 26.Wie erzeugt man eindeutige IDs über Shards hinweg ohne zentrale Sequenz?
- 27.Was besagt das CAP-Theorem?
- 28.Was bedeutet „Eventual Consistency“?
- 29.Was ist Linearisierbarkeit?
- 30.Warum liefern in einem Quorum-System mit N Replicas Lese- und Schreibvorgänge mit
R + W > Naktuelle Daten? - 31.Eine Abfrage ist in der Entwicklung schnell, in Produktion mit denselben Indizes aber langsam. Was prüft man zuerst?
- 32.Welches Problem können Prepared Statements mit generischen Plänen verursachen?
- 33.Welche Fallstricke bringt PgBouncer im Transaction-Pooling-Modus?
- 34.Wie befüllt man eine neue Spalte in einer Tabelle mit 500 Millionen Zeilen sicher?
- 35.Wie fügt man einer großen Tabelle einen Fremdschlüssel oder eine
NOT NULL-Prüfung hinzu, ohne Schreibvorgänge lange zu blockieren? - 36.Wie zählt man eindeutige Besucher über riesige Datenmengen billig, wenn ungefähre Ergebnisse reichen?
- 37.Was ist ein typischer Grund,
max_connectionsin PostgreSQL zu begrenzen und zu poolen, statt es auf Tausende zu erhöhen? - 38.Was sind die Kompromisse von „geteilten Tabellen mit
tenant_id“ gegenüber „einem Schema oder einer Datenbank pro Mandant“ in einer SaaS-App? - 39.Was ist Event Sourcing?
- 40.Was ist CQRS im Kontext der Datenspeicherung?
- 41.Warum ist ein „Dual Write“ (in die Datenbank schreiben, dann an Kafka veröffentlichen) riskant, und was ist die Alternative?
- 42.Wie modelliert man Zeitreihendaten, etwa Metriken jede Sekunde von 10.000 Geräten, in PostgreSQL?
- 43.Was ist das Single-Table-Design von DynamoDB?
- 44.Warum ist Redis als einziger Speicher für wichtige Geschäftsdaten riskant?
- 45.Wann ergibt eine Suchmaschine wie Elasticsearch oder OpenSearch neben PostgreSQL Sinn?
- 46.Wofür nutzt man ein Sternschema?
- 47.Wie macht man ein Hauptversions-Upgrade von PostgreSQL mit minimaler Ausfallzeit?
- 48.Warum reichen logische Dumps (
pg_dump) allein als Backup-Strategie für eine große, viel genutzte Datenbank nicht aus? - 49.Welche Maßnahmen schützen sensible Spalten (etwa personenbezogene Daten) in einer Datenbank?
- 50.Wobei hilft
pg_stat_activitybei einem Vorfall? - 51.Wie sollte ein Team die Wahl einer Datenbank für ein neues Produkt angehen?
- 52.Welche Rolle spielen
shared_buffersund der Page Cache des Betriebssystems für die Performance von PostgreSQL? - 53.Warum kann eine Abfrage mit
ORüber verschiedene Spalten langsam sein, und was hilft? - 54.Was bewirkt die Speichereinstellung
fillfactorbei einer stark aktualisierten Tabelle? - 55.Wofür sind erweiterte Statistiken (
CREATE STATISTICS) da? - 56.Warum kann eine Abfrage mit
LIMITmanchmal langsamer sein als dieselbe ohneLIMIT? - 57.Wofür ist ein Wide-Column-Store wie Cassandra ausgelegt?
- 58.Wann passt eine Graphdatenbank (wie Neo4j) besser als eine relationale?
- 59.Wie hängen Write Concerns und Read Concerns von MongoDB mit Konsistenz zusammen?
- 60.Wofür nutzt man eine Vektordatenbank (oder die Erweiterung
pgvector)? - 61.Warum ist es riskant, Events nach von verschiedenen Servern erzeugten Datenbank-Zeitstempeln zu ordnen?
- 62.Was ist das Hauptrisiko von
ON DELETE CASCADE-Ketten in einem großen Schema? - 63.Welche Reihenfolge des zusammengesetzten Index ist für
WHERE tenant_id = $1 AND created_at > $2 ORDER BY created_atam besten? - 64.Wie kann PostgreSQL auf Datenbankebene zwei überlappende Buchungen desselben Raums verhindern?
- 65.Wann ist Hash-Partitionierung nützlich?
- 66.Ein Bestellablauf umfasst die Services Bestellungen, Zahlungen und Versand, jeder mit eigener Datenbank. Wie hält man sie ohne verteilte Transaktionen konsistent?
- 67.Lange Analyseabfragen auf einer Streaming-Replica werden mit „conflict with recovery“ abgebrochen. Warum?
- 68.Was ist eine sichere Abfolge, um in einem System mit Rolling Deploys eine Spalte zu löschen?
- 69.Direkt nach einem Datenbank-Failover steigt die Latenz, obwohl der neue Primary dieselbe Hardware hat. Was ist eine wahrscheinliche Ursache?
- 70.Ein Nutzer verlangt, alle seine personenbezogenen Daten zu löschen (DSGVO). Was wird oft übersehen?
- 71.Warum sollte man Migrationen gegen eine Kopie der Daten in Produktionsgröße testen?
- 72.Nach einem Deploy öffnen Hunderte neuer App-Instanzen gleichzeitig Verbindungen, und die Datenbank reagiert nicht mehr. Was hilft?
- 73.Was ist TOAST in PostgreSQL?
- 74.Wie hält man einen denormalisierten Wert wie
posts.comments_countunter Nebenläufigkeit korrekt? - 75.Warum passt ein eindeutiger Index auf
emaileventuell nicht mehr, sobald man Soft Deletes einführt?