Как найти нужное: секционирование данных на котах
Как найти одного кота среди сотни других?
Можно искать его среди всех котов по очереди, а можно заранее разделить их на группы, чтобы сузить круг поисков. Похожий принцип работает и с большими объемами данных, когда среди миллионов записей нужно быстро найти нужные.
Катя, руководитель группы системной аналитики, работала над оптимизацией больших таблиц с помощью секционирования.

В статье она рассказала, как работает этот подход, что важно учитывать при его реализации и при чем здесь коты.
Разбираемся с большими таблицами
В больших таблицах могут храниться миллионы записей. При таких объемах поиск нужных данных иногда занимает много времени, замедляя загрузку списков и отчетов.
Есть разные способы оптимизации: можно улучшать запросы, добавлять индексы или менять организацию данных.
Один из подходов — секционирование, то есть разделение большой таблицы на части.
Рассаживаем котов по коробкам
Представьте комнату, в которой живет сотня котов, а нам нужно найти кошку Мусю.
Можно искать ее среди всех животных, а можно заранее рассадить котов по коробкам, например, по возрасту.
Мусе два года — значит, ищем только в коробке с котами от года до семи лет.
Выбираем правило разделения
Чтобы секционирование было полезным, важно правильно выбрать, какую таблицу разделить и по какому правилу.
Вернемся к котам. Если все они примерно одного возраста, делить их на возрастные группы бессмысленно: почти все окажутся в одной коробке.
Зато, если коты разных пород, можно рассадить их по породам и искать Мусю только в нужной коробке.
Продумываем перенос данных
Выбрать способ разделения — только часть задачи. Данные из заполненной таблицы еще нужно перенести в новую.
Перенос может дополнительно нагружать систему, поэтому мы, например, предусмотрели возможность приостанавливать его в часы пик и продолжать позже.
А если секционирование не подойдет, данные можно перенести обратно в обычную таблицу.