Форум программистов, компьютерный форум, киберфорум
PostgreSQL
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
4 / 4 / 6
Регистрация: 23.05.2012
Сообщений: 445

Как выполнить партиционирование в postgres, если неизвестно число возможных slave таблиц?

09.09.2015, 15:14. Показов 1143. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день.

Есть такая таблица:

---------
parts
---------
id
value

---------

Таблица наполнена записями:

id value
1 40
2 1000

---------------
3 500
4 2
5 13
6 860

--------------
7 74
8 15
9 230

--------------
10 100
--------------

Нужно выполнить партицирование по такому условию:

Берется максимальное value в таблице (1000) . Первый отрезок берется с первой записи до этого максимального value включительно.

Затем алгоритм повторяется, след максимальное число - 860, данный отрезок будет начинаться с 500, т.к. 100 уже забита и по 860.

И данный алгоритм должен повторяться (рекурсивно?!) до тех пор пока в главной таблице не останится записей, свободных для дальнейшего партицирования.

В итоге должны получиться такие группы:

1 группа - 40, 1000
2 группа - 500, 2, 13, 860
3 группа - 74, 15, 230
4 группа - 100

Смог это решить на php, вытащив массив, но нужно именно в postgres поделить по slave таблицам, при условии, что таблица parts может быть бескрайней, т.е. подтаблицы должны создаваться динамически.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
09.09.2015, 15:14
Ответы с готовыми решениями:

Партиционирование или отдельные таблицы (база InnoDB), кол-во 10-20тыс таблиц
Есть большая таблица, нужно улучшить скорость чтения,insert,update. 1) Партиционирование, подойдет-ли? 2) Разбить на отдельные...

Как идентифицировать checkbox если их количество неизвестно
Как идентифицировать checkbox если их количество неизвестно. Можно конечно при созданий чекбокса заносить описатели в массив, а потом...

Как просто вытащить по одному полю с максимальным значением из 2-x разных таблиц в postgres?
Вот так не получилось: SELECT MAX(t_places.sys_date_update) , MAX(t_category_cargo.sys_date_update) FROM t_places ...

1
1263 / 977 / 384
Регистрация: 02.09.2012
Сообщений: 3,020
10.09.2015, 14:29
Какое-то странное у вас партиционирование. А если вдруг появится запись с идентификатором 11 и значением 2000, что делать?? заново все перепартиционировать?? Но согласно вашему условию все записи попадут в партицию (группу) номер 1. Короче то партиционирование, которое предлагает postgresql, в вашем случае не реализуемо. Если задача стоит в разделении на группы по определенному критерию, то начните вот с этого запроса.

SQL
1
2
3
SELECT *, COUNT(1) OVER (partition BY maxval) groupid FROM
(SELECT *, MAX(val) OVER (ROWS BETWEEN CURRENT ROW AND unbounded following) maxval FROM parts) maxvalues
ORDER BY id;
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
10.09.2015, 14:29
Помогаю со студенческими работами здесь

Как скопировать файл, если неизвестно имя одной из папок в пути?
Как скопировать если не знаешь имя папки? xcopy "%APPDATA%\Mozilla\Firefox\Profiles\?????\places.sqlite" "F:\Backup" /H /Y /C...

Как выгрузить из ресурсов текстовый файл, если имя его заранее неизвестно ?
Всем привет! Собственно, в ресурсах есть несколько текстовых файлов. В программе я получаю имя нужного файла, открываю его и загружаю...

Как вставить ряд данных, если заранее неизвестно сколько будет значений ?
Здравствуйте, можете подсказать? Мне надо создать программу и я сразу столкнулся с такой проблемой, допустим мне надо сделать расчёты по...

Сумма числового ряда 1) если n известно 2) если n неизвестно
Предполагается создание программы с циклом for, но я не уверена что решила верно. Нужно ведь чтобы и n и х вводились пользователем? И как...

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


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
Расскажи мне о Мире, бродяга
kumehtar 12.11.2025
— Расскажи мне о Мире, бродяга, Ты же видел моря и метели. Как сменялись короны и стяги, Как эпохи стрелою летели. - Этот мир — это крылья и горы, Снег и пламя, любовь и тревоги, И бескрайние. . .
PowerShell Snippets
iNNOKENTIY21 11.11.2025
Модуль PowerShell 5. 1+ : Snippets. psm1 У меня модуль расположен в пользовательской папке модулей, по умолчанию: \Documents\WindowsPowerShell\Modules\Snippets\ А в самом низу файла-профиля. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru