Pytania rekrutacyjne z baz danych (Senior) z odpowiedziami

75 pytań na rozmowę rekrutacyjną z tematu Bazy danych (Senior) - z poprawnymi odpowiedziami, wyjaśnieniami i linkami do dokumentacji.

Rozwiąż ten test
  1. 1.Jak PostgreSQL decyduje, czy wersja wiersza jest widoczna dla transakcji?
  2. 2.Czym jest przepełnienie ID transakcji (wraparound) i dlaczego jest groźne?
  3. 3.Czym jest puchnięcie tabeli (bloat) i co je zwykle powoduje?
  4. 4.Jaki jest cel dziennika zapisu z wyprzedzeniem (WAL)?
  5. 5.Z czego rezygnuje się, ustawiając synchronous_commit = off?
  6. 6.Czym różnią się silniki oparte na B-drzewach i na drzewach LSM przy zapisach?
  7. 7.Dlaczego bazy wierszowe słabo radzą sobie z zapytaniami analitycznymi po miliardach wierszy?
  8. 8.Dlaczego zbyt wiele indeksów szkodzi tabeli z intensywnymi zapisami nie tylko przez miejsce na dysku?
  9. 9.Czym jest write skew?
  10. 10.Jak PostgreSQL implementuje poziom Serializable?
  11. 11.Jak zbudować na PostgreSQL kolejkę zadań, którą bezpiecznie odpytuje wiele workerów?
  12. 12.Czym są blokady doradcze (advisory locks) w PostgreSQL?
  13. 13.Wiele żądań aktualizuje ten sam wiersz licznika (UPDATE stats SET views = views + 1 WHERE id = 1). Jaki jest problem i rozwiązanie?
  14. 14.Dlaczego unikalność klucza idempotencji należy wymuszać ograniczeniem unikalności, a nie przez „sprawdź, potem wstaw”?
  15. 15.Dlaczego rozproszona blokada w Redisie (np. Redlock) sama nie wystarcza do ochrony poprawności danych?
  16. 16.Jaki jest kompromis między replikacją synchroniczną a asynchroniczną?
  17. 17.Użytkownik aktualizuje profil i od razu widzi stare dane. Odczyty idą do replik. Jaki jest problem i rozwiązanie?
  18. 18.Na co pozwala replikacja logiczna, a na co nie pozwala fizyczna replikacja strumieniowa?
  19. 19.Czym jest change data capture (CDC)?
  20. 20.Czym jest „split brain” w układzie z przełączaniem awaryjnym?
  21. 21.Co oznaczają RPO i RTO?
  22. 22.Kiedy partycjonowanie tabel w PostgreSQL pomaga najbardziej?
  23. 23.Co cechuje dobry klucz shardowania?
  24. 24.Dlaczego w rozproszonych magazynach danych używa się haszowania spójnego?
  25. 25.Jakie problemy pojawiają się, gdy dane są shardowane między bazy?
  26. 26.Jak generować unikalne ID między shardami bez centralnej sekwencji?
  27. 27.Co mówi twierdzenie CAP?
  28. 28.Co oznacza „spójność ostateczna” (eventual consistency)?
  29. 29.Czym jest linearyzowalność?
  30. 30.Dlaczego w systemie kworum z N replikami odczyty i zapisy z R + W > N dają aktualne odczyty?
  31. 31.Zapytanie jest szybkie w developmencie, ale wolne na produkcji przy tych samych indeksach. Co sprawdzić najpierw?
  32. 32.Jaki problem mogą powodować prepared statements z planami generycznymi?
  33. 33.Jakie pułapki niesie PgBouncer w trybie puli transakcji?
  34. 34.Jak bezpiecznie uzupełnić nową kolumnę w tabeli z 500 milionami wierszy?
  35. 35.Jak dodać klucz obcy lub sprawdzenie NOT NULL do dużej tabeli bez długiego blokowania zapisów?
  36. 36.Jak tanio liczyć unikalnych odwiedzających w ogromnych zbiorach danych, gdy wystarczy wynik przybliżony?
  37. 37.Jaki jest typowy powód, by ograniczać max_connections w PostgreSQL i używać puli zamiast podnosić je do tysięcy?
  38. 38.Jakie są kompromisy między „wspólnymi tabelami z tenant_id” a „schematem lub bazą na tenanta” w aplikacji SaaS?
  39. 39.Czym jest event sourcing?
  40. 40.Czym jest CQRS w kontekście przechowywania danych?
  41. 41.Dlaczego „podwójny zapis” (zapisz do bazy, potem opublikuj w Kafce) jest ryzykowny i jaka jest alternatywa?
  42. 42.Jak zamodelować w PostgreSQL szeregi czasowe, np. metryki co sekundę z 10 000 urządzeń?
  43. 43.Czym jest single-table design w DynamoDB?
  44. 44.Dlaczego trzymanie ważnych danych biznesowych tylko w Redisie jest ryzykowne?
  45. 45.Kiedy wyszukiwarka, jak Elasticsearch czy OpenSearch, ma sens obok PostgreSQL?
  46. 46.Do czego służy schemat gwiazdy (star schema)?
  47. 47.Jak przeprowadzić aktualizację głównej wersji PostgreSQL z minimalnym przestojem?
  48. 48.Dlaczego same zrzuty logiczne (pg_dump) nie wystarczą jako strategia kopii zapasowych dużej, obciążonej bazy?
  49. 49.Jakie środki chronią wrażliwe kolumny (np. dane osobowe) w bazie?
  50. 50.W czym podczas incydentu pomaga pg_stat_activity?
  51. 51.Jak zespół powinien podejść do wyboru bazy dla nowego produktu?
  52. 52.Jaka jest rola shared_buffers i cache stron systemu w wydajności PostgreSQL?
  53. 53.Dlaczego zapytanie z OR po różnych kolumnach może być wolne i co może pomóc?
  54. 54.Co robi ustawienie fillfactor dla często aktualizowanej tabeli?
  55. 55.Do czego służą rozszerzone statystyki (CREATE STATISTICS)?
  56. 56.Dlaczego zapytanie z LIMIT bywa wolniejsze od tego samego zapytania bez LIMIT?
  57. 57.Do czego zaprojektowano magazyny wide-column, jak Cassandra?
  58. 58.Kiedy baza grafowa (np. Neo4j) pasuje lepiej niż relacyjna?
  59. 59.Jak write concern i read concern w MongoDB wiążą się ze spójnością?
  60. 60.Do czego używa się bazy wektorowej (albo rozszerzenia pgvector)?
  61. 61.Dlaczego porządkowanie zdarzeń po znacznikach czasu generowanych przez bazy na różnych serwerach jest ryzykowne?
  62. 62.Jakie jest główne ryzyko łańcuchów ON DELETE CASCADE w dużym schemacie?
  63. 63.Dla WHERE tenant_id = $1 AND created_at > $2 ORDER BY created_at jaka kolejność indeksu złożonego jest najlepsza?
  64. 64.Jak PostgreSQL może na poziomie bazy zapobiec dwóm nakładającym się rezerwacjom tej samej sali?
  65. 65.Kiedy przydaje się partycjonowanie haszowe?
  66. 66.Proces zamówienia obejmuje serwisy zamówień, płatności i wysyłki, każdy z własną bazą. Jak utrzymać spójność bez transakcji rozproszonych?
  67. 67.Długie zapytania analityczne na replice strumieniowej są anulowane z komunikatem „conflict with recovery”. Dlaczego?
  68. 68.Jaka jest bezpieczna kolejność usuwania kolumny w systemie ze stopniowymi wdrożeniami?
  69. 69.Tuż po przełączeniu bazy opóźnienia skaczą, choć nowy serwer główny ma ten sam sprzęt. Jaka jest prawdopodobna przyczyna?
  70. 70.Użytkownik prosi o usunięcie wszystkich swoich danych osobowych (RODO). Co często się pomija?
  71. 71.Dlaczego migracje warto testować na kopii danych wielkości produkcji?
  72. 72.Po wdrożeniu setki nowych instancji aplikacji otwierają połączenia naraz i baza przestaje odpowiadać. Co pomoże?
  73. 73.Czym jest TOAST w PostgreSQL?
  74. 74.Jak utrzymać poprawność zdenormalizowanej wartości, np. posts.comments_count, przy współbieżności?
  75. 75.Dlaczego indeks unikalny na email może przestać pasować po dodaniu miękkiego usuwania?