Iniciar sesión Registro
Anuncios
Tu espacio publicitario
Reserva este slot exclusivo para el periodo elegido.
Comprar publicidad →
Logotipo de la comunidad de telegram - Стендап Сьогодні
Añadido 06 dic. 2025

Стендап Сьогодні

@stendap_sogodni
Número de suscriptores: 564
Fotos: 181
Videos: 14
Enlaces: 1,110
Descripción:
👨‍💻 Програмування та більше. Тільки власний контент. Пости щодня. Сторінка автора: https://leonid.shevtsov.me Компанія, де він працює: https://railsware.com
Fuente

Стендап Сьогодні | Надгробки в базах данихОК, ще одна повʼязана ідея, з якою мені чомусь ...

Logotipo de la comunidad de telegram - Стендап Сьогодні Стендап Сьогодні @stendap_sogodni
512 Vistas/Alcance 2025-12-25 21:38 Mensaje №1426
Надгробки в базах данихОК, ще одна повʼязана ідея, з якою мені чомусь постійно доводиться стикатися останнім часом.Річ у тім, що видалення з бази даних практично ніколи не вивільняє місце запису. Натомість запис помічається як видалений — утворюється так званий надгробок (tombstone). І тільки пізніше, окремою операцією очищення бази це місце буде дійсно вивільнено. Інколи таке очищення відбувається лише вручну... або за певної архітектури взагалі не є можливою.Те ж саме стосується й редагування. Бо найчастіше редагування відбувається через "видалення" попередньої версії та дописування нової. Тим самим у нас теж зʼявляється надгробок. На то є кілька причин — в транзакційній базі головна причина те, що нам все одно треба зберігати й стару версію теж. Так само і в розподіленій базі.От якщо взяти PostgreSQL, то надгробки видаляються операцією VACUUM. Яка може виконуватися й автоматично. Може, а якщо це не налаштовано, то цілком реально опинитися з табличкою, де мертвих записів на порядок більше, ніж живих.В ElasticSearch все складніше; найкращій та рекомендований варіант — це просто видаляти весь застарілий індекс. Бо інакше його доведеться принаймні заморожувати на запис. Тому навіть використовується такий підхід, що оновлені документи пишуться в нові індекси, а не в один.Інколи надгробки є більш... матеріальними, от в CouchDB їх роблять заради синхронізації видалень між вузлами. Та й взагалі будь-де синхронізація вимагає надгробків.А інколи ми робимо їх самі - додаємо поле deleted_at.