Interviewfragen zu Datenbanken (Middle) mit Antworten

75 Fragen fürs Vorstellungsgespräch zu Datenbanken (Middle) mit richtigen Antworten, Erklärungen und Links zur Dokumentation.

Diesen Test machen
  1. 1.Welche Datenstruktur nutzt ein Standardindex in PostgreSQL?
  2. 2.Es gibt einen Index auf (last_name, first_name). Welche Abfrage kann ihn effizient nutzen?
  3. 3.Es gibt einen Index auf created_at. Warum ignoriert WHERE date(created_at) = '2026-11-01' ihn eventuell?
  4. 4.Warum kann ein normaler B-Baum-Index WHERE name LIKE '%son' nicht beschleunigen?
  5. 5.Was ist ein partieller Index?
  6. 6.Was ist ein abdeckender Index und ein Index-Only Scan?
  7. 7.Warum wählt PostgreSQL eventuell einen sequenziellen Scan, obwohl ein Index existiert?
  8. 8.Was bringt CREATE INDEX CONCURRENTLY?
  9. 9.Welcher Indextyp passt zur Suche in einer jsonb-Spalte, etwa WHERE data @> '{"tags": ["sale"]}'?
  10. 10.Warum können zufällige UUIDs (v4) als Primärschlüssel Einfügungen in großen Tabellen bremsen?
  11. 11.Was ist der Unterschied zwischen EXPLAIN und EXPLAIN ANALYZE?
  12. 12.In EXPLAIN ANALYZE schätzte der Planer 10 Zeilen, bekam aber 500.000. Worauf deutet das hin?
  13. 13.Welche Join-Algorithmen kann PostgreSQL nutzen?
  14. 14.Warum kann SELECT COUNT(*) FROM big_table in PostgreSQL langsam sein?
  15. 15.Wie findet man in Produktion die Abfragen, die insgesamt die meiste Zeit verbrauchen?
  16. 16.Was ist die Standard-Isolationsstufe für Transaktionen in PostgreSQL?
  17. 17.Was ist ein „Non-Repeatable Read“?
  18. 18.Was ist ein „Lost Update“, und wie verhindert man es?
  19. 19.Was macht SELECT ... FOR UPDATE?
  20. 20.Was ist ein Deadlock, und was macht PostgreSQL dagegen?
  21. 21.Wie funktioniert optimistisches Sperren?
  22. 22.Was macht INSERT ... ON CONFLICT (email) DO UPDATE?
  23. 23.Warum sind lang laufende Transaktionen in PostgreSQL schädlich?
  24. 24.Was ist ein Savepoint?
  25. 25.Was macht eine Fensterfunktion wie ROW_NUMBER() OVER (PARTITION BY user_id ORDER BY created_at DESC)?
  26. 26.Was ist der Unterschied zwischen RANK() und DENSE_RANK()?
  27. 27.Wie berechnet man eine laufende Summe der Zahlungen pro Nutzer?
  28. 28.Wofür ist eine CTE (WITH ...) gut?
  29. 29.Was erlaubt WITH RECURSIVE?
  30. 30.Warum kann WHERE id NOT IN (SELECT user_id FROM bans) gar keine Zeilen liefern?
  31. 31.Was erlaubt LEFT JOIN LATERAL?
  32. 32.Wofür nutzt man COUNT(*) FILTER (WHERE status = 'paid')?
  33. 33.Wann sollte man in PostgreSQL jsonb-Spalten nutzen?
  34. 34.Was bietet die Volltextsuche von PostgreSQL gegenüber ILIKE '%word%'?
  35. 35.Was ist das N+1-Abfrageproblem?
  36. 36.Warum ist Keyset-Paginierung (Cursor) für tiefe Seiten schneller als OFFSET?
  37. 37.Warum nutzen Anwendungen einen Connection Pool?
  38. 38.Wie fügt man im modernen PostgreSQL einer riesigen Tabelle eine NOT NULL-Spalte mit Standardwert ohne lange Sperren hinzu?
  39. 39.Wie benennt man eine Spalte sicher um, die eine laufende Anwendung nutzt?
  40. 40.Was ist eine Materialized View?
  41. 41.Was ist ein häufiger Nachteil, Geschäftslogik in Triggern unterzubringen?
  42. 42.Was macht Row-Level Security (RLS) in PostgreSQL?
  43. 43.Wo sollte eine Regel „eindeutige E-Mail“ durchgesetzt werden?
  44. 44.Wie fügt man 10.000 Zeilen effizient ein?
  45. 45.Was bedeutet MVCC in PostgreSQL?
  46. 46.Was macht VACUUM?
  47. 47.Warum schreibt ein UPDATE in PostgreSQL eine ganz neue Zeilenversion?
  48. 48.Wann sollten in MongoDB zusammengehörige Daten in ein Dokument eingebettet statt referenziert werden?
  49. 49.Was ist die Aggregation Pipeline von MongoDB?
  50. 50.Unterstützt MongoDB Transaktionen über mehrere Dokumente?
  51. 51.Welcher Redis-Datentyp passt zu einer Bestenliste?
  52. 52.Was ist der schwierigste Teil beim Cachen von Datenbankergebnissen?
  53. 53.Was passiert, wenn Redis seine Grenze maxmemory erreicht?
  54. 54.Was ist ein zentraler Unterschied beim Skalieren von SQL und NoSQL, wie er meist beschrieben wird?
  55. 55.Was ist grob die dritte Normalform (3NF)?
  56. 56.Wie speichert man wechselnde Abo-Pläne eines Nutzers so, dass die Historie sichtbar ist?
  57. 57.Was ist eine polymorphe Assoziation, und was ist ihr Problem?
  58. 58.Wie speichert man Tags an Artikeln in einer relationalen Datenbank meist?
  59. 59.Warum speichert man den Preis einer Bestellung zum Kaufzeitpunkt, statt immer den aktuellen Produktpreis zu joinen?
  60. 60.Wofür nutzt man eine Read Replica?
  61. 61.Was ist Point-in-Time Recovery (PITR)?
  62. 62.Warum kann ALTER TABLE an einer viel genutzten Tabelle die ganze Anwendung einfrieren?
  63. 63.Wofür nutzt man einen Datenbank-Seed?
  64. 64.Warum bevorzugt man oft Integrationstests gegen eine echte Datenbank (etwa in Docker) statt die Datenbank zu mocken?
  65. 65.Was ist ein „Phantom Read“?
  66. 66.Was muss eine Anwendung tun, wenn sie in PostgreSQL die Isolationsstufe Serializable nutzt?
  67. 67.Was liefert SELECT DISTINCT ON (user_id) * FROM orders ORDER BY user_id, created_at DESC?
  68. 68.Was ergänzt GROUP BY ROLLUP (country, city) im Ergebnis?
  69. 69.Was ist eine generierte Spalte?
  70. 70.Was sind die Kompromisse eines PostgreSQL-Typs ENUM für eine Statusspalte?
  71. 71.Warum kann ORDER BY created_at DESC LIMIT 10 auf einer riesigen Tabelle sehr schnell sein?
  72. 72.Was ist ein „Bitmap Heap Scan“ in einem EXPLAIN-Plan?
  73. 73.Wogegen schützt statement_timeout?
  74. 74.Warum passt Redis INCR gut zu einem einfachen Rate Limiter?
  75. 75.Was macht ein Fremdschlüssel mit ON DELETE RESTRICT (oder dem Standard NO ACTION), wenn man eine referenzierte Zeile löscht?