2013-04-12 59 views
1

我有一个名为Star的Java对象存储在数据库中。这里有数十亿条记录,所以我想将这个单个对象分割到数据库中的多个表中,由Star对象中的一个名为cluster的字段组成,这个字段的值为“left”,“right”,“top”,“bottom”将对象拆分为许多表格

class Star { 

    private String Name; 
    private String cluster; 
    } 

因此,而不是有一个巨大的表,我将有四个巨大的星表对象。有没有可能在休眠中做到这一点?如果是这样,怎么样?

我想避免必须创建四个不同的起始对象:StarLeft,StarRight,StarBottom和StarTop,以便它们落在不同的表上。

编辑:这样做的表现。我没有特定的数据库,我的应用程序应该与任何(Oracle,MySQL等)一起工作,因此我使用休眠的原因之一。

+0

你是因为性能原因做这个还是你的逻辑需要你这样做?你的数据库是什么? – Kent

+0

我想知道数十亿记录和Hibernate是否能够很好地结合在一起:自己做SQL,Hibernate可能会给你一个次优的解决方案。 – bluevoid

+0

你还想用hibernate做它吗? – 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