TGViewer
Devs Hive Devs Hive @devshive · 1.41K subscribers
Post #76 623
Дуже швидко про ACID, бо багато хто не до кінця розуміє, що воно таке. А це база, без якої важко зрозуміти болячки реляційних баз. Також ACID допомагає краще зрозуміти його протилежність у розподілених системах - BASE (як би дивно це не звучало).

Отже, ACID - це набір властивостей, які описують транзакцію.

1️⃣ Atomicity
Транзакція або виконується повністю (COMMIT), або не виконується взагалі (ROLLBACK).

2️⃣ Consistency
Після транзакції база має залишатися у валідному стані. Важливо розуміти, що валідний стан описується на рівні DB за допомогою інструментів, які перевіряють дані під час транзакцій: constraints, foreign keys, unique indexes, checks...

У реальному житті це завжди компроміс. Критичні правила краще залишати на рівні бази, а менш важливі валідації можна тримати на рівні application layer.

3️⃣ Isolation
Основна ідея, що транзакції не повинні заважати одна одній. Це теж компроміс, так як чим вищий рівень ізоляції тим менше аномалій при паралельних транзакціях, але менша паралельність.

Те що треба розуміти:
- Read Uncommitted
- Read Committed
- Repeatable Read
- Serializable

4️⃣ Durability
Якщо транзакція закомічена, база даних має гарантувати, що ці зміни були записані на диск.

Також, це часто запитують на інтервʼю тому про ACID я писав на сайті
  • 👍 9
  • 🔥 7
More from @devshive
  1. Oct 7, 2026Post #289
  2. Oct 7, 2026Post #288
  3. Oct 6, 2026Цікаве оновлення в Nest.js 🔥 Вони випиляли Axios з HTTP клієнта і тепер використовують na…
  4. Oct 6, 2026Ще одне практичне застосування Jev - jevgrep 🤯☕️ Це інструмент для пошуку потрібного коду…
  5. Oct 5, 2026Post #285
  6. Oct 4, 2026Дуже багато відповіли, що Promise виконає обчислення в окремому потоці 🚬 Треба робити від…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →