TGViewer
Анализ, коты, цветы и Катя Анализ, коты, цветы и Катя @analyticagain · 498 subscribers
Post #490 435
Когда индексы БД вредят: мой практический опыт и исследование основ

Рассказываю:

Мы столкнулись с проблемой падения производительности БД при работе с группами, содержащими большое количество объектов. Исследовать проблему поручили отделу RnI (как же замечательно, когда такой отдел есть в команде). Как результат, целый час они напоминали мне основы и рассказывали про бинарные деревья, B-tree и хэш-индексацию. Честно, до такого уровня работы БД я ранее не погружалась


Стали очевидными все недостатки индексации:
👀 самый оптимальный способ записи данных при больших объёмах делает БД бесполезной для их выдачи. То есть лишает нас одной из двух основных функций БД: доступа к данным.
👀 На помощь приходит индексация, позволяющая оптимально искать данные, но тогда страдает производительность при создании, модификации и особенно удалении данных.

Рулят в итоге компромиссы

Здесь мне уже захотелось копнуть глубже вне работы.

И какое же было моё удивление, когда я обнаружила, что вся глава 3.1 знаменитого «Кабанчика» Клеппмана посвящена именно этой теме. В целом там хорошо объясняются структуры SS и B-tree. А вот хэш-индексацию и LSM-tree из Клеппмана мне уложить в голове не удалось.

Более подробное и наглядное объяснение, особенно с точки зрения влияния структур на работу БД, я нашла у Алекса Петрова в «Распределённые данные». Она стоит безумных денег в бумаге, что смешно, учитывая, что первая ссылка в поиске ведёт на бесплатное скачивание. Пока прочитала только одну главу по диагонали, но уже вижу, что материала много и глубоко. Но для уровня аналитика это, пожалуй, излишне.

А вот что действительно помогло - это визуализаторы. Например, потрясающий симулятор работы B-деревьев. Можно самому нагенерировать ключи и посмотреть как они распределяются в структуре с неплохим описанием, наблюдаемого действия.

Ещё один отличный инструмент, уже визуализатор хэш-таблиц Здесь можно посмотреть поведение при вставке, поиске и удалении - самое ценное для пониманией БД с таким способом индексирования.

В общем, увлекательный мир индексации только начинает открываться для меня. Возможно, позже я напишу о нём подробнее с учётом практического опыта. В теме много интересного и полезного для аналитика, например забавный факт:

Индексация в большинстве реляционных и NoSQL БД строится на одних и тех же структурах.


Господа аналитики, а вам знания о структурах БД на таком уровне помогают в работе?

👍 - да, постоянно (поделитесь в комментариях как), 👎🏼 - нет,
😐 - банальщина, как можно было это не знать?
😱 - только сейчас от тебя услышал(а).

#структурыданныхБД #СистемныйАнализ #btree
  • 👍 10
  • 👎 2
More from @analyticagain
  1. Sep 24, 2026Посмотрите, какую картинку подготовил Андрей к занятию по OpenSpec. Милота неимоверная) Со…
  2. Sep 23, 2026Когда я вырасту создам свой брокер сообщений и назову его Упоротый кот. Причина инцидента?…
  3. Sep 22, 2026Без лишних слов: ко мне в команду ищут аналитика. Вакансия
  4. Sep 21, 2026OpenSpec: Понеслось От блога есть несомненный плюс он расширяет границы. Так, с подачи ком…
  5. Sep 18, 2026Обе стороны менторства Сегодня специально встала пораньше, чтобы подать заявку на программ…
  6. Aug 18, 2026Верните рутину Последнее время периодически ловлю уныние от работы: Много сложных, трудоём…
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 →