2013-04-12 2 views
1

데이터베이스에 저장되어있는 Star라는 Java 개체가 있습니다. 이것에 대한 수십억 개의 레코드가 있습니다. 그래서이 단일 오브젝트를 데이터베이스의 여러 테이블로 나눕니다. cluster라는 별 오브젝트의 필드는 "left", "right", "top", "bottom"개체를 여러 테이블로 분할

class Star { 

    private String Name; 
    private String cluster; 
    } 

그래서 그 대신 하나 개의 큰 테이블을 가지고, 나는 스타 객체의 네 개의 큰 테이블이있을 것이다. 최대 절전 모드에서이 작업을 수행 할 수 있습니까? 그렇다면 어떻게?

StarLeft, StarRight, StarBottom 및 StarTop 등 네 가지 Start 개체를 만들어야하는 번거 로움을 피하기 위해 서로 다른 테이블에 착륙합니다.

편집 : 성능 향상을 위해이 작업을 수행하십시오. 나는 특정 데이터베이스가 없으며, 내 응용 프로그램은 어떤 (Oracle, MySQL 등)과도 작동해야하므로 최대 절전 모드를 사용하는 이유 중 하나입니다.

+0

성능상의 이유로이 작업을 수행하고 있습니까? 아니면 논리에서 수행해야합니까? 당신의 데이터베이스는 무엇입니까? – Kent

+0

나는 수십억 개의 레코드와 Hibernate가 잘 어울리는 지 궁금해한다. 당신 자신의 SQL을 수행하면, Hibernate는 아마도 당신에게 차선책을 줄 것이다. – bluevoid

+0

여전히 최대 절전 모드를 사용하고 싶습니까? – acdcjunior

답변

1

오라클을 사용하는 경우 파티셔닝을 지원하므로 성능을 향상시키는 것이 목표라면 DB 수준에서이를 달성 할 수 있습니다. 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

관련 문제