Имел ли кто-то дело с "Reloading models" в Django?
сейчас делаю через metaclass в функции(
нормально так делать? к сожалению не было такой практики, а сейчас очень много табл. с одинаковой структурой, которые отличает префикс определенного региона.
sim3x, есть таблицы region _ * _ data (вместо "*" - id региона) таких таблиц - 25, они сделаны для того, чтобы уменьшить нагрузку на табл. потому что если бы была общая, то не выдержала бы такой нагрузки как сейчас. Делать 25 моделей как по мне - плохая идея, так как менять что-то придется во всех моделях. Вариант с одной табл. не годится. Поэтому я и делал "Reloading models", но не знаю правильно ли так делать и какие могут быть последствия.
sim3x,
сколько Тб у вас сейчас в данной таблице?
там зависит все от числа записей в табл., так как по большей части полей идет разная фильтрация, во время тестов БД загибалась, поэтому и было принято решение разбить на 25 табл. я не знаю сколько они сейчас весят.
зачем?
таблицы сделаны вручную, потому что за ними смотрит специалист по БД, который и делал архитектуру базы.
я к сожалению не могу делать там какие-то изменения без согласия с ним, такая архитектура уже утверждена и я изменить ее не могу.
Если кто-то сделал такую архитектуру, то он и должен вам ответить, как ее использовать
Сейчас есть подозрение, что "спец" совсем не спец
0. В часности, как реализованы FK/M2M от и к данным таблицам
1. Сколько там реально данных, что простейшая фильтрация по инт полю там убивает СУБД
2. Какое железо
Потому что решать костылями архитектурные ошибки - ни к чему хорошему не приведет
+ Решение делать на джанго только маппинг без миграций, нууу очень сомнительное и требует хорошей квалификации и синхронизации от DBA и питонера
Если кто-то сделал такую архитектуру, то он и должен вам ответить, как ее использовать
он специалист по БД) я хотел услышать здесь ответ можно ли делать в Django "Reloading models", то есть, чтобы я в одной модели мог использовать все табл., и как лучше это делать)
Сейчас есть подозрение, что "спец" совсем не спец
спец норм, у него более 20 лет опыта с БД, и построил архитектурные решения в хороших проектах
0. В часности, как реализованы FK/M2M от и к данным таблицам
здесь долго объяснять) но если нужно, то могу описать
1. Сколько там реально данных, что простейшая фильтрация по инт полю там убивает СУБД
фильтрация по нескольким полям, 3 поля TINYINT (4), 11 полей INT (11), 2 поля DATETIME
фильтрация с операторами "=", "! =", "<=", "> =" + иногда группировки
спец норм, у него более 20 лет опыта с БД, и построил архитектурные решения в хороших проектах
Значит он должен знать как использовтаь его подход
Я вам очень советую подойти к нему с данным вопросом
фильтрация по нескольким полям, 3 поля TINYINT (4), 11 полей INT (11), 2 поля DATETIME
фильтрация с операторами "=", "! =", "<=", "> =" + иногда группировки
группировка - проблема. Все остальное - не должно вообще создать проблем
Более того, разделение на подтаблицы снимет 1/16 проблемы
str(int(prefix))очень стремно, такое впечатление, что префикс еще откуда-то с клиента приезжает.
Сделайте tuple / named tuple со списком своих регионов и бросайте ексепшен, если региона нет в данном tuple
Про модели
Не уверен в работоспособности решения
Даже не представляю, как такое тестировать
sim3x,
Более того, разделение на подтаблицы снимет 1/16 проблемы
для каждой табл (region _ * _ data) есть еще подтаблицы (16 шт.) с другими характеристиками) все запросы летают) никаких проблем нет
str(int(prefix))очень стремно, такое впечатление, что префикс еще откуда-то с клиента приезжает.
к сожалению да, с клиента приходят
Сделайте tuple / named tuple со списком своих регионов и бросайте ексепшен, если региона нет в данном tuple
это все я в view уже делаю)
Про модели
Не уверен в работоспособности решения
Даже не представляю, как такое тестировать
работает все хорошо, но меня такое решение немного смущает, поэтому и поднял этот вопрос, потому что нигде не нашел информации
работает так же как и обычная модель)
FulTupFul, к сожалению partition использовать не могу, только табл. с различными префиксами вида region _ * _ data (вместо "*" - id региона) + есть еще подтаблицы (16 шт.) с такими же префиксами