2013-04-12 60 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