|
|---|
| Ни за счёт чего. Если тебе надо в запросе обрабатывать данные из всех партиций, то запрос от партицирования никак не убыстряется, а порой даже наоборот. |
Поэтому я и хочу, чтобы был прунинг. Чтобы запросы, которые затронут несколько секций, были производительными. И что значит "ни за счет чего"? Прунинг ведь это просто дополнительная оптимизация.
|
|---|
| Я не понял вопрос. Секционирование -- вообще достаточно статичная штука. Ты хочень пересоздавать разделы перед каждым запросом? Глупость, если так. |
Чтобы добиться прунинга, я могу создать 12 партиций используя TO_DAYS('yyyy-mm-dd') на текущий год, но тогда по истечении периода, по которому были созданы секции, придется создавать новую таблицу с новыми секциями для нового периода. Или можно просто добавить партицию, или изменить существующие? Не хочу я пересоздавать разделы перед каждым запросом.
| автор |
|---|
3. Есть ли смысл в субсекционирвании по user_id?
Зависит от твоих данных и запросов. |
Все запросы у меня имеют приблизительно такой вид:
SELECT ... FROM ... WHERE date >= 'x' AND date <= 'y' AND user_id = z GROUP BY...
Т.е. колонка, по которой устроены секции, почти всегда присутствует как и user_id.
|
|---|
| Я не понял, неужели ты считаешь, что оптимизатор сам выдерет месяц из даты и обрежет ненужные партиции ? |
Пример запроса указан выше. Меня интересует последовательность WHERE, нужно ли всегда
начинать с даты, или оптимизатор сам разберется при построении запроса?