|
|
|
Hibernate очень много одинаковых таблиц
|
|||
|---|---|---|---|
|
#18+
Здравствуйте. Подскажите пожалуйста. Пытаюсь изучить Hibernate. Покопавшись в старых темах, не обнаружил похожего вопроса.(если не заметил буду рад за ссылку) Имеется проект. В нём > 200 одинаковых таблиц(совершенно одинаковая структура). Имена у них на подобии table_1, table_2 итд (таблицы могут автоматически добавляться) В них находятся некоторые данные, которые выбираются по primary key. Номер таблицы, выбирается по определённому алгоритму, на основе primary key ID. Помимо этого, есть много таблиц в единичном экземпляре. С теми таблицами которых один экземпляр, вопросов нет. Но вот как замапить что не в 1 экземпляре (все эти table_XXX)? Может ли Hibernate вообще работать с такой структурой? Хочется сделать что-то вроде 1 класса на все. Заранее всем спасибо за ответы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2013, 22:31:30 |
|
||
|
Hibernate очень много одинаковых таблиц
|
|||
|---|---|---|---|
|
#18+
Есть ещё какие-то таблицы помимо этих 200? Если нет, то и hibernate брать не за чем. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2013, 22:43:41 |
|
||
|
Hibernate очень много одинаковых таблиц
|
|||
|---|---|---|---|
|
#18+
NetImperia, я так понимаю у вас таким образом реализован шардинг, вроде в hibernate было что-то такое, посмотрите hibernate shards. А так соглашусь с Blazkowicz, что стоит хорошо подумать, а нужен ли Вам hibernate? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2013, 22:47:06 |
|
||
|
Hibernate очень много одинаковых таблиц
|
|||
|---|---|---|---|
|
#18+
BlazkowiczЕсть ещё какие-то таблицы помимо этих 200? Если нет, то и hibernate брать не за чем. В том и проблема что есть. Как я писал выше: Помимо этого, есть много таблиц в единичном экземпляре. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2013, 22:47:43 |
|
||
|
Hibernate очень много одинаковых таблиц
|
|||
|---|---|---|---|
|
#18+
just_vladimirNetImperia, я так понимаю у вас таким образом реализован шардинг, вроде в hibernate было что-то такое, посмотрите hibernate shards. А так соглашусь с Blazkowicz, что стоит хорошо подумать, а нужен ли Вам hibernate? Именно. Спасибо за наводку. Сел читать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2013, 22:54:28 |
|
||
|
Hibernate очень много одинаковых таблиц
|
|||
|---|---|---|---|
|
#18+
NetImperia, Понять причину Почему их много. И исправить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2013, 08:14:58 |
|
||
|
Hibernate очень много одинаковых таблиц
|
|||
|---|---|---|---|
|
#18+
Petro123NetImperia, Понять причину Почему их много. И исправить. Оптимизаия производительности. Вычислить маленькую таблицу по ID и найти в ней запись намного быстрее чем найти запись в одной таблице размером в 200 раз больше. Банально дискового пространства может не хватать. Разные таблицы разбросаны по разным дискам. Продвинутые базы это умеют прозрачно, не затрагивая клиетский код. Здесь, вероятно, сделано вручную. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2013, 10:18:57 |
|
||
|
Hibernate очень много одинаковых таблиц
|
|||
|---|---|---|---|
|
#18+
BlazkowiczPetro123NetImperia, Понять причину Почему их много. И исправить. Оптимизаия производительности. Вычислить маленькую таблицу по ID и найти в ней запись намного быстрее чем найти запись в одной таблице размером в 200 раз больше. Банально дискового пространства может не хватать. Разные таблицы разбросаны по разным дискам. Продвинутые базы это умеют прозрачно, не затрагивая клиетский код. Здесь, вероятно, сделано вручную. да нету такого. Чтобы справочник городов разбивали по буквам алфавита - ГородаА, ГородаБ - изврат)))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2013, 10:28:11 |
|
||
|
Hibernate очень много одинаковых таблиц
|
|||
|---|---|---|---|
|
#18+
Petro123да нету такого. Тебе виднее. Проект Hibernate Sharding тоже из пальца высосан. Ведь так никто не делает. Petro123Чтобы справочник городов разбивали по буквам алфавита - ГородаА, ГородаБ - изврат)))) Кто говорил про "справочник"? Базу сети супермаркетов со всеми чеками за N лет видел когда-нибудь? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2013, 10:33:49 |
|
||
|
Hibernate очень много одинаковых таблиц
|
|||
|---|---|---|---|
|
#18+
BlazkowiczОптимизаия производительности. Вычислить маленькую таблицу по ID и найти в ней запись намного быстрее чем найти запись в одной таблице размером в 200 раз больше. Банально дискового пространства может не хватать. Разные таблицы разбросаны по разным дискам. Продвинутые базы это умеют прозрачно, не затрагивая клиетский код. Здесь, вероятно, сделано вручную.Что же это за СУБД, если такую оптимизацию нельзя на уровне БД реализовать. Как вариант через view или stored procedure. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2013, 10:54:36 |
|
||
|
Hibernate очень много одинаковых таблиц
|
|||
|---|---|---|---|
|
#18+
ant74BlazkowiczОптимизаия производительности. Вычислить маленькую таблицу по ID и найти в ней запись намного быстрее чем найти запись в одной таблице размером в 200 раз больше. Банально дискового пространства может не хватать. Разные таблицы разбросаны по разным дискам. Продвинутые базы это умеют прозрачно, не затрагивая клиетский код. Здесь, вероятно, сделано вручную.Что же это за СУБД, если такую оптимизацию нельзя на уровне БД реализовать. Как вариант через view или stored procedure. +1 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2013, 10:55:31 |
|
||
|
Hibernate очень много одинаковых таблиц
|
|||
|---|---|---|---|
|
#18+
ant74Что же это за СУБД, если такую оптимизацию нельзя на уровне БД реализовать. Любое говно мамонта. Мало что ли legacy систем? ant74Как вариант через view или stored procedure. Да, можно попробовать логику внутри view реализовать. Но получится ли? Да, и вопрос не о том был. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2013, 11:00:13 |
|
||
|
Hibernate очень много одинаковых таблиц
|
|||
|---|---|---|---|
|
#18+
Blazkowicz, что нам за аффтора додумывать? Согласись, выглядит странно: - долго ищет таблице = 1 решение - а нафига индексы? Потом, кластерный индекс? Потом железо? Потом OLAP\OLTP. Потом решения ОРАКЛ\Сиквел \ партиционирование. А потом уже ломать проект и делать велосипед у программиста. "Если ты Сервер, не суетись под клиентом (с)" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2013, 11:11:50 |
|
||
|
Hibernate очень много одинаковых таблиц
|
|||
|---|---|---|---|
|
#18+
Не вдаваясь в подробности, а нафига это надо, могу предложить такую схему решения: - описать суперкласс для одинаковых таблиц - с помощью cglib нагенерить классы, примерно так Код: java 1. 2. 3. - нагенерить меппинги названиями нагенеренных классов tableXXXClass и добавить их в конфигурацию Код: java 1. 2. 3. 4. Как потом с этим работать - фиг знает, hql врядли заработает, может быть, Criteria взлетит. Скорее всего, придется использовать SQLQuery, а тогда нафига всё это надо? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2013, 11:31:30 |
|
||
|
Hibernate очень много одинаковых таблиц
|
|||
|---|---|---|---|
|
#18+
Petro123, не пойму, что Вас смущает, описанная автором ситуация вполне распространенный подход по реализации партиционирования для бедных. Например, может быть у человека нет нужной лицензии или используется PostgreSQL, где прямо в доке предлагают создавать кучу таблиц. Более того, тот же hibernate вообще не умеет использовать нативные механизмы партиционирования СУБД. Или Вам непонятно зачем нужно партиционирование в принципе? ant74, я думаю вариант со stored procedure вполне себе жизненный. Когда для сущности, которая шардится/партиционируется весь CRUD вынести в процедуры. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2013, 12:56:02 |
|
||
|
Hibernate очень много одинаковых таблиц
|
|||
|---|---|---|---|
|
#18+
just_vladimirИли Вам непонятно зачем нужно партиционирование в принципе? расшифровываю. Это вопрос по архитектуре. Там принципы - от простого к сложному . Т.е. сначала БЕЗ партиций в любом виде. Потом, обосновав - на уровне СУБД. Потом уже на уровне Java. Я ведь выше привёл линейку масштабирования. Если тут форум Java, это не значит, что БД - импотент. (т.е. у заказчика на терабайт данных нет 1000 баксов на СУБД) Логично? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2013, 13:05:36 |
|
||
|
Hibernate очень много одинаковых таблиц
|
|||
|---|---|---|---|
|
#18+
just_vladimirPostgreSQL, где прямо в доке предлагают создавать кучу таблиц пруфлинк? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2013, 13:10:10 |
|
||
|
Hibernate очень много одинаковых таблиц
|
|||
|---|---|---|---|
|
#18+
Petro123расшифровываю. Это вопрос по архитектуре. Там принципы - от простого к сложному . Т.е. сначала БЕЗ партиций в любом виде. Потом, обосновав - на уровне СУБД. Потом уже на уровне Java. Я ведь выше привёл линейку масштабирования. Если тут форум Java, это не значит, что БД - импотент. (т.е. у заказчика на терабайт данных нет 1000 баксов на СУБД) Логично? Не уловил Ваших мыслей. Откуда домыслы что проект автора уже не прошел все простые варианты на тему индексов и т.д.? Petro123just_vladimirPostgreSQL, где прямо в доке предлагают создавать кучу таблиц пруфлинк? http://www.postgresql.org/docs/9.1/static/ddl-partitioning.html ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2013, 13:18:53 |
|
||
|
Hibernate очень много одинаковых таблиц
|
|||
|---|---|---|---|
|
#18+
just_vladimir, вот же любители спорить)). Первый мой пост аффтару: авторNetImperia, Понять причину Почему их много. И исправить. пусть скажет причину. Так понятно? ЗЫ. Я кстати, ни с кем тут не спорил). Даже с тем что Хибер выбросить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2013, 13:29:12 |
|
||
|
Hibernate очень много одинаковых таблиц
|
|||
|---|---|---|---|
|
#18+
Petro123, понять причину - я задал уточняющий вопрос, являются ли данные множественные таблицы оптимизацией основанной на шардинге, на что получил утвердительный ответ. При этом замечу, что Ваш вопрос о причине было несколько позже :) Или Вы о какой-то другой причине? ЗЫ: да Вы тоже смотрю не проч по спорить ;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2013, 14:03:45 |
|
||
|
Hibernate очень много одинаковых таблиц
|
|||
|---|---|---|---|
|
#18+
just_vladimir, )) ну дак мы все разные. Тебя ответ - "Да" - устроил. Меня, как и вот тут..... партиции и производительность - не устраивает. Поэтому, не будем толкаться локтями). ЗЫ. Спор без автора топика - мазохизм)). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2013, 14:15:54 |
|
||
|
Hibernate очень много одинаковых таблиц
|
|||
|---|---|---|---|
|
#18+
Petro123ЗЫ. Спор без автора топика - мазохизм)). Вот с этим соглашусь :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2013, 14:21:34 |
|
||
|
Hibernate очень много одинаковых таблиц
|
|||
|---|---|---|---|
|
#18+
NetImperiajust_vladimirNetImperia, я так понимаю у вас таким образом реализован шардинг, вроде в hibernate было что-то такое, посмотрите hibernate shards. А так соглашусь с Blazkowicz, что стоит хорошо подумать, а нужен ли Вам hibernate? Именно. Спасибо за наводку. Сел читать. Шардинг — это когда на разных серверах и в разных базах. А это — просто хрень какая -то. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2013, 14:51:37 |
|
||
|
Hibernate очень много одинаковых таблиц
|
|||
|---|---|---|---|
|
#18+
Я удивлён что такие споры из-за моего вопроса. Приоткрою немного инфы. :) Скажу сразу. Это не публичный проект. Изначально проект был 1 сервер (за 300$ в месяц) + MySQL 3 + PHP 3. Тогда и не планировалось что данных будет так много. Данных становилось всё больше и больше. И они перестали вмещаться на один винт. Помимо этого, поиск даже по индексу занимал очень много времени. Так как решать надо было быстро, да и денег было мало. В результате просто добавили винты и таблицы поделены на части. Через некоторое время проект медленно начали переписывать на Java. Потом проект был заброшен. Но продолжал работать. И так всё это продолжалось довольно долго. В результате это всё превратилось в полное извращение. Сейчас это монстр из 7 компов в каждом 36 винтов. Часть на PHP, часть на Java и есть даже кусок на ruby(кто на нём написал до сих пор не ясно. Очень хочется поймать его и кое что оторвать). + MySQL 5 Вообщем 100% пример. Как нельзя делать проекты. Недавно было решено таки закончить с перепиской на Java. Обозначалось это фразой: Ты у нас сейчас свободен. Вот и иди занимайся :) Попутно решил изучить Hibernate получше. Как понимаете сейчас весь это зоопарк выглядит просто дико. Но что есть то есть. Понятное дело что по хорошему надо сделать тупо кластер. Но сейчас нет денег на это. У проекта очень ограниченный бюджет. По поводу структуры: Для тех кто По поводу всяких Oracle итд. Опять-же всё упирается в деньги. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2013, 17:10:34 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=38256591&tid=2129358]: |
0ms |
get settings: |
15ms |
get forum list: |
25ms |
check forum access: |
7ms |
check topic access: |
7ms |
track hit: |
60ms |
get topic data: |
22ms |
get forum data: |
6ms |
get page messages: |
115ms |
get tp. blocked users: |
2ms |
| others: | 280ms |
| total: | 539ms |

| 0 / 0 |
