digital-garden/_inbox/Партиционирование в БД.md

2.3 KiB
Raw Blame History

aliases tags date zero-link parents linked
зрелость/🌱
2024-06-20
00 Базы Данных
00 HighLoad
Шардирование в БД

На некоторых докладах партиции назывались вертикальным шардированием.

Принципы:

  • Берем данные и разделяем по какому-то признаку
  • Разделенные данные физически лежат отдельно. Разные таблицы
  • Но все данные остаются в пределах одного сервера.

Минусы:

  • Некоторые запросы могут замедлиться. Для выполнения запросов, в которых нам нужно сходить в несколько партиций.
  • Так как данные лежат на одном сервере, то если уперлись в производительность диска, партиционирование не поможет.
  • Перестройка партиций дорогостоящая операция.

Плюсы:

  • Простая реализация. Разработчик продолжает обращаться к таблице, а СУБД понимает в какую партицию ей стоит идти.
  • Некоторые типы запросов может ускорить за счет уменьшения объема данных в партиции.

Основные типы разделения:

  • По ключу
  • По диапазону
  • По списку
  • По хэш значению поля

Советы:

  • Лучше не использовать BETWEEN для разбивки на партиции. Так как непонятно в какую партицию попадут пограничные значения
  • Не стоит создавать партиции одной таблицы по разным полям.

Особенности СУБД:

Пример создания в MySQL: