Секционирование таблиц (table partitioning)

Секционирование таблиц разбивает одну логически большую таблицу на множество меньших физических частей — секций — обычно по ключу вроде даты, идентификатора арендатора или региона. Запросы и записи по-прежнему обращаются к единой логической таблице; база сама направляет каждую строку в нужную секцию. Это не то же, что шардирование: секционирование делит данные внутри одного сервера, а шардирование распределяет их по многим. Выгода в том, что движок может пропускать целые секции, которые заведомо неактуальны, — запрос за прошлую неделю не трогает прошлогодние данные, — и сканирование остаётся быстрым, даже когда таблица вырастает до миллиардов строк. Удаление старых данных превращается из медленного DELETE с блокировками в мгновенное отбрасывание секции. Для SaaS-разработчиков секционирование по времени естественно сочетается с политиками хранения данных, а по арендатору — изолирует крупнейших клиентов. На практике: выбирайте ключ секционирования, по которому фильтрует большинство запросов, иначе теряете выгоду отсечения и лишь добавляете накладные расходы.

Похожие термины

Ещё термины: Данные и инфраструктура