|
0 / 0 / 0
Регистрация: 10.05.2018
Сообщений: 3
|
|
Секционирование02.03.2021, 15:35. Показов 1467. Ответов 4
Метки нет (Все метки)
Всем привет! Помогите решить такую задачу!
Есть таблица заказов клиентов, которую хочу секционировать, но по "хитрому". Чтобы была одна секция в которую всегда был insert по-умолчанию, а по мере "старения" данных, перемещать их вручную в "архивные" секции. Объясню зачем так: Мне удобней написать SELECT ONLY FROM, чтобы получить "живые" данные, а для получения данных из архива просто SELECT FROM. С декларативным описанием Postgres 12 не могу получить такую структуру таблицы (и соответственно всех ее подчиненных). А если идти через INHERITS, то писать доп. триггеры не очень хочется. P.S> Сейчас сделано через схемы: 2014-год,2015-год... и чтобы выбрать данные по всей базе (шеф просит) нужно писать через union Заранее спасибо!
0
|
|
| 02.03.2021, 15:35 | |
|
Ответы с готовыми решениями:
4
Разбиение (секционирование) в PostgreSQL Секционирование таблицы по году совершения сделки Полный бэкап MySQL с ежедневными партициями (секционирование по дням) |
|
1263 / 977 / 384
Регистрация: 02.09.2012
Сообщений: 3,021
|
|
| 04.03.2021, 09:43 | |
|
Мне видится, что при таком желании только вручную делать.
Для стандартного декларативного подхода так не полчится сделать. Хотя не очень ясно желание в принципе разделять запросы. Пишите одинаково, а уже в какую партицию попадет - это база сама решит. В этом собственно и смысл.
0
|
|
|
0 / 0 / 0
Регистрация: 10.05.2018
Сообщений: 3
|
|
| 04.03.2021, 09:48 [ТС] | |
|
Спасибо! Уже помогли найти решение.
Вручную - не так страшно, как ждать .... ответа от сервера ![]() Я просто приучил своих пользователей мгновенной реакции программы на их действия и они теперь при малейшей задержке все бегут ко мне. А я устал отвечать - база пухнет и т.д.
0
|
|
|
0 / 0 / 0
Регистрация: 22.03.2017
Сообщений: 4
|
|
| 05.03.2021, 06:13 | |
|
Если не затруднит, опубликуйте тут решение.
Чтоб помочь другим людям в решении их проблем.
0
|
|
|
0 / 0 / 0
Регистрация: 10.05.2018
Сообщений: 3
|
||||||||||||||||
| 05.03.2021, 09:38 [ТС] | ||||||||||||||||
|
Без проблем! И так моя задача (для меня) была такой.
Исходные данные: - Есть заказы клиентов (таблица) - Есть продукты заказов (таблица) - Есть материалы продуктов (таблица) - Есть операции над материалами (таблица) - Есть характеристики (параметры) продуктов (таблица) - "пухнут" как и у всех ![]() Желания: - Разделить заказы на "живые" и "архивные" - Доступ к данным через один и тот же запрос - Скорость выборки-отклика программы - Использовать минимальное количество телодвижений при дальнейшем обслуживании - Индексы это хорошо, но маленькие индексы - лучше (опять таки - для меня!) - Я сам должен решать когда "живые" данные становятся "архивными". - При добавлении новых полей, они должны быть и в архиве для отработки одних и тех же запросов P.S. Приучил своих пользователей к комфортной работе. А теперь при малейших задержках - бегут и кричат тормозит!! ![]() Решение: - Использовал декларативное объявление таблиц. (
- Создал все таблицы и разбил на 2 уровня вложенности. Первый уровень: года - 2010, 2011, ... Второй уровень: ID (от 1..10, 11..20, ....) - Для "живых" данных использую год 2000, для остальных - реальный. - Вставка данных с учетом разбиения идет автоматом, благодаря самому Postgres. - Внешние ключи с версии 12 теперь можно подключать к конкретным секциям, т.е. целостность БД сохраняется. - Индексы уменьшились - Очень старые данные можно отключать (использовать не буду, т.к. шеф у меня любит статистику )- Во всех запросах (по-тихоньку и где нужно) пропишу дополнительное условие:
Как-то так! Я не претендую ни на что, я лишь рассказал какое решение меня устроило. Спасибо!
0
|
||||||||||||||||
| 05.03.2021, 09:38 | |
|
Помогаю со студенческими работами здесь
5
СЕКЦИОНИРОВАНИЕ Секционирование таблиц Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Загрузка PNG-файла с альфа-каналом с помощью библиотеки SDL3_image на Android
8Observer8 27.01.2026
Содержание блога
SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
|
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
|
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога
SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
|
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога
Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip"
Извлеките архив и вы увидите. . .
|
|
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога
Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д.
Сборка примера
Скачайте. . .
|
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
|
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net
REST сервисы временно не работают, только через Web.
Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
|
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
|