TGViewer
Test Engineering Notes Test Engineering Notes @testengineering · 4.01K subscribers
Post #637 2.15K
🥳 Ювілей каналу та зламані індекси

#anniversary #databases #bug

Вчора каналу Test Engineering Notes виповнилося 3 роки! Стартуючи канал, я й не думав, що буду писати так довго 😄. А ще - я навіть не сподівався, що канал виросте аж до 3500+ підписників! 🎉

Дякую вам усім за те, що продовжуєте читати! А я буду продовжувати ділитись з вами технічними та складними штуками зі світу тестування й інженерії.

То ж, не буде гаяти час - перейдемо до справи!

💼 Справа про зламані індекси в базі

Сьогодні я хочу поділитися з вами цікавим матеріалом - "When Postgres Indexing Went Wrong”. Ця стаття розповідає, як оптимізація перфомансу може піти не так, як планувалося. (Як часто й буває).

Була в одній компанії Postgres база даних, величенька за розмірами (десь мільярди рядків). Щоб зробити запити більш швидкими, розробники створювали індекси. Але просто індекси, а в паралелі - за допомогою CREATE INDEX CONCURRENTLY. Перфоманс запитів покращився, можна святкувати!!!

Але трохи згодом, почалися проблеми зі швидкістю запитів в базу. Швидкість яка поступово росла. Перфоманс бази бідкався, розробники розводили руками.

🔍 Що ж сталося?

- паралельна індексація проходить в два етапи: спочатку створюється індекс на основі снапшоту стану бази, а потім Postgres обробляє всі зміни, які пропустив.
- паралельна індексація - асинхронна та …. може ТИХО ВПАСТИ й залишити по собі зламаний індекс!
- у випадку компанії проблема була гіршою - бо дані були розділені між багатьма розділами (partitions)

❗️Як цього уникнути?

- користуйтеся флагом CONCURRENTLY, коли створюєте індекси в продакшені
- моніторьте індекси та перевіряйте їх вручну (за допомогою EXPLAIN ANALYZE)

Памʼятаймо: чим більше ми знаємо про системи та як вони можуть впасти - тим краще ми зможемо запобігти помилкам.
Telio Blog When Postgres Indexing Went Wrong It’s important to understand basics of indexing and best practices around them for preventing system downtime.
  • 👍 27
  • 🔥 12
  • ❤ 4
  • 🌚 2
More from @testengineering
  1. Oct 8, 2026🛠 Brownfield Agentic Engineering #ai Addy Osmani поділився думкою про те, як працювати з…
  2. Oct 6, 2026Вже жовтень - саме час готуватися до ISTQB CT-GenAI "До Нового Року є ще цілий квартал щоб…
  3. Oct 5, 2026Ministry of Testing - англомовні івенти на всі смаки #testing #ai Всім привіт. Хочу розпов…
  4. Sep 30, 2026Скіл, щоб прибрати зайве #ai Цікавий скіл, щоб не продиратись через купу згенерованого тек…
  5. Sep 29, 2026Що таке агент? #ai Зрозумій, на небесах в тестуванні тільки й говорять, що про море агенті…
  6. Sep 28, 2026Navigating the AI Shift #testing@testengineering #ai@testengineering Трохи старе, але не м…
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 →