2012-06-28 40 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