2012-06-28 44 views
2

我的应用程序使用Spring + Hibernate的+ mysql的。Hibernate和MySQL分区

我的一些表都增长非常大,水平分区会真正受益我解决相关的性能问题。

我接过一看休眠碎片,但不喜欢的事实,这是不是在Maven的回购,它仍然是标有“测试版”。

我使用MySQL的分区功能,并有一些问题考虑:

如果我创建一个使用MySQL的我可以继续使用我的应用程序像往常一样没有从冬眠任何错误分区?

我明白我不能明确地告诉Hibernate来使用的MySQL的分区。但是,如果我使用休眠过滤器来“建议”什么分区旨在将MySQL优化查询并使用正确的分区?

实施例:

说我由列类型,可以是1,2,3,4分割我的表 - 每种类型去不同的分区。

如果我加上这种类型的柱休眠过滤器,以便最终的查询将是成才类似于:从MYTABLE

选择布拉布拉其中东西AND型= 3(休眠滤波器添加的类型= 3)。

将mysql的拿起这件事,并把它与从MYTABLE PARTITION(3型),其中东西

选择布拉布拉

回答

1

MySQL的所有相关发现肮脏的工作,哪一个分区中的数据可能会/会存储。从客户的角度来看,表是否被分区是完全透明的,查询保持不变。 有作为 SELECT col FROM mytable PARTITION(p);与MySQL没有这样的事情。

正如TJCmberss指出的,SELECT col FROM mytable PARTITION(p);确实存在于v5.6版本中,并允许进行明确的手动分区修剪。

0

嘿,我们可以在这里使用session.createsqlquery(“选择blatable从mytable PARTITION(type3)where stuff”);解决这个问题?毕竟,Hibernate支持本地API。

谢谢 Sanjeev Yadav