2013-04-12 3 views
1

У меня есть объект Java Star, который хранится в базе данных. Это миллиарды записей, поэтому я хочу разбить этот единственный объект на несколько таблиц в базе данных, полем в объекте Star называется кластер, который принимает значения «left», «right», «top», «bottom»,Разбиение объекта на многие таблицы

class Star { 

    private String Name; 
    private String cluster; 
    } 

Поэтому вместо того, чтобы иметь один огромный стол, у меня будет четыре огромных стола для объекта Star. Возможно ли это сделать в спящем режиме? Если да, то как?

Я хочу, чтобы не создавать четыре разных объекта Start: StarLeft, StarRight, StarBottom и StarTop, поэтому они приземляются на разных таблицах.

Редактировать: Выполнение этой задачи. У меня нет конкретной базы данных, мое приложение должно работать с любыми (Oracle, MySQL и т. Д.), Поэтому одна из причин, почему я использую hibernate.

+0

Вы делаете это по соображениям производительности, или ваша логика требует, чтобы вы это сделали? какая у вас база данных? – Kent

+0

Интересно, хорошо ли сочетаются миллиарды записей и Hibernate: сделайте свой sql самостоятельно, Hibernate, вероятно, предоставит вам субоптимальное решение. – bluevoid

+0

Вы все еще хотите сделать это, используя спящий режим? – acdcjunior

ответ

1

Если вы используете Oracle, он поддерживает разделение, поэтому, если ваша цель - повысить производительность, вы можете достичь этого на уровне БД. http://docs.oracle.com/cd/B10501_01/server.920/a96524/c12parti.htm. Вероятно, другие базы данных тоже предоставляют аналогичные функции.

+1

Я согласен, это, наверное, лучшее решение. Я просто хотел упомянуть, что Postgres также поддерживает это: http://www.postgresql.org/docs/9.2/static/ddl-partitioning.html. Как и MySQL: http://dev.mysql.com/doc/refman/5.5/en/partitioning.html – jcern

Смежные вопросы