Питання на співбесіді з баз даних (Senior) з відповідями

75 запитань для співбесіди з теми Бази даних (Senior) - з правильними відповідями, поясненнями й посиланнями на документацію.

Пройти цей тест
  1. 1.Як PostgreSQL вирішує, чи видима версія рядка для транзакції?
  2. 2.Що таке переповнення ID транзакцій (wraparound) і чому воно небезпечне?
  3. 3.Що таке роздування таблиці (bloat) і що його зазвичай спричиняє?
  4. 4.Яке призначення журналу попереднього запису (WAL)?
  5. 5.Чим жертвує synchronous_commit = off?
  6. 6.Чим відрізняються рушії зберігання на B-деревах і на LSM-деревах щодо запису?
  7. 7.Чому рядкові бази погано справляються з аналітичними запитами по мільярдах рядків?
  8. 8.Чому забагато індексів шкодить таблиці з інтенсивним записом не лише місцем на диску?
  9. 9.Що таке write skew?
  10. 10.Як PostgreSQL реалізує рівень Serializable?
  11. 11.Як побудувати на PostgreSQL чергу задач, яку безпечно опитують багато воркерів?
  12. 12.Що таке рекомендаційні блокування (advisory locks) у PostgreSQL?
  13. 13.Багато запитів оновлюють той самий рядок-лічильник (UPDATE stats SET views = views + 1 WHERE id = 1). У чому проблема і як її вирішити?
  14. 14.Чому унікальність ключа ідемпотентності слід забезпечувати унікальним обмеженням, а не «перевірити, потім вставити»?
  15. 15.Чому розподіленого блокування в Redis (наприклад, Redlock) самого по собі недостатньо для коректності даних?
  16. 16.Який компроміс між синхронною та асинхронною реплікацією?
  17. 17.Користувач оновлює профіль і одразу бачить старі дані. Читання йдуть на репліки. У чому проблема і як виправити?
  18. 18.Що дозволяє логічна реплікація, чого не дає фізична потокова?
  19. 19.Що таке change data capture (CDC)?
  20. 20.Що таке «split brain» у схемі з перемиканням (failover)?
  21. 21.Що означають RPO і RTO?
  22. 22.Коли партиціонування таблиць у PostgreSQL допомагає найбільше?
  23. 23.Яким має бути добрий ключ шардингу?
  24. 24.Навіщо в розподілених сховищах використовують консистентне хешування?
  25. 25.Які проблеми з'являються, коли дані розшардовано між базами?
  26. 26.Як генерувати унікальні ID між шардами без центральної послідовності?
  27. 27.Що стверджує теорема CAP?
  28. 28.Що означає «узгодженість у кінцевому підсумку» (eventual consistency)?
  29. 29.Що таке лінеаризованість?
  30. 30.Чому в кворумній системі з N репліками читання й записи з R + W > N дають актуальне читання?
  31. 31.Запит швидкий у розробці, але повільний у продакшені з тими самими індексами. Що перевірити першим?
  32. 32.Яку проблему можуть спричинити підготовлені інструкції з generic-планами?
  33. 33.Які пастки має PgBouncer у режимі пулу транзакцій?
  34. 34.Як безпечно заповнити новий стовпець у таблиці з 500 мільйонами рядків?
  35. 35.Як додати зовнішній ключ чи перевірку NOT NULL до великої таблиці, не блокуючи запис надовго?
  36. 36.Як дешево рахувати унікальних відвідувачів на величезних даних, якщо досить приблизного результату?
  37. 37.Яка типова причина обмежувати max_connections у PostgreSQL і використовувати пул, а не піднімати його до тисяч?
  38. 38.Які компроміси між «спільними таблицями з tenant_id» і «схемою чи базою на тенанта» в SaaS-застосунку?
  39. 39.Що таке event sourcing?
  40. 40.Що таке CQRS у контексті зберігання даних?
  41. 41.Чим ризикований «подвійний запис» (записати в базу, потім опублікувати в Kafka) і яка альтернатива?
  42. 42.Як змоделювати в PostgreSQL часові ряди, як-от метрики щосекунди від 10 000 пристроїв?
  43. 43.Що таке single-table design у DynamoDB?
  44. 44.Чому ризиковано тримати важливі бізнес-дані лише в Redis?
  45. 45.Коли пошуковий рушій, як-от Elasticsearch чи OpenSearch, має сенс поруч із PostgreSQL?
  46. 46.Для чого використовують схему «зірка» (star schema)?
  47. 47.Як оновити мажорну версію PostgreSQL з мінімальним простоєм?
  48. 48.Чому самих логічних дампів (pg_dump) недостатньо як стратегії резервного копіювання великої навантаженої бази?
  49. 49.Які заходи захищають чутливі стовпці (наприклад, персональні дані) в базі?
  50. 50.Що допомагає діагностувати pg_stat_activity під час інциденту?
  51. 51.Як команді підходити до вибору бази для нового продукту?
  52. 52.Яка роль shared_buffers і кешу сторінок ОС у продуктивності PostgreSQL?
  53. 53.Чому запит з OR по різних стовпцях може бути повільним і що допоможе?
  54. 54.Що робить налаштування зберігання fillfactor для таблиці з частими оновленнями?
  55. 55.Для чого розширена статистика (CREATE STATISTICS)?
  56. 56.Чому запит з LIMIT іноді повільніший за той самий запит без LIMIT?
  57. 57.Для чого спроєктовано wide-column сховища, як-от Cassandra?
  58. 58.Коли графова база (як-от Neo4j) підходить краще за реляційну?
  59. 59.Як write concern і read concern у MongoDB пов'язані з узгодженістю?
  60. 60.Для чого використовують векторну базу (або розширення pgvector)?
  61. 61.Чому ризиковано впорядковувати події за часовими мітками, згенерованими базами на різних серверах?
  62. 62.Який головний ризик ланцюжків ON DELETE CASCADE у великій схемі?
  63. 63.Для WHERE tenant_id = $1 AND created_at > $2 ORDER BY created_at який порядок складеного індексу найкращий?
  64. 64.Як PostgreSQL може на рівні бази заборонити два бронювання однієї кімнати, що перетинаються?
  65. 65.Коли корисне хеш-партиціонування?
  66. 66.Оформлення замовлення проходить через сервіси замовлень, платежів і доставки, кожен із власною базою. Як тримати їх узгодженими без розподілених транзакцій?
  67. 67.Довгі аналітичні запити на потоковій репліці скасовуються з «conflict with recovery». Чому?
  68. 68.Яка безпечна послідовність видалення стовпця в системі з поступовими деплоями?
  69. 69.Одразу після перемикання бази затримка стрибає, хоча новий основний сервер має те саме залізо. Яка ймовірна причина?
  70. 70.Користувач просить видалити всі його персональні дані (GDPR). Що часто випускають з уваги?
  71. 71.Чому міграції треба перевіряти на копії даних розміру продакшену?
  72. 72.Після деплою сотні нових інстансів застосунку одночасно відкривають з'єднання, і база перестає відповідати. Що допоможе?
  73. 73.Що таке TOAST у PostgreSQL?
  74. 74.Як тримати коректним денормалізоване значення на кшталт posts.comments_count при паралельних запитах?
  75. 75.Чому унікальний індекс на email може стати непридатним, коли додаєте м'яке видалення?