2015-12-23 54 views
0

我正在研究涉及MySQL數據庫的項目,該數據庫擁有數十億行並在其上構建基於Java的應用程序。我使用Hibernate作爲ORM。雖然我在MySQL上執行一個複雜的查詢,但在Hibernate中執行相同查詢需要大約8.9秒的時間,因此執行時間大約需要2.5秒。是否有任何設置需要更改以減少Hibernate中的執行時間?休眠查詢比MySQL中的本機查詢慢

回答

1

Hibernate比原生有點慢 - 這是可以預料的......你是否正確定義了索引?你使用延遲加載(你應該)。什麼查詢是休眠吐出來獲取您的數據相比,本機(使用hibernate.show_sql = true)

+0

我正在使用的查詢是: 'SELECT start_date,X,'USER _ [[:digit:]] +' AS Y,SUM(Z) FROM table_name WHERE(Y REGEXP'USER _ [[:digit:]] +') AND X IN(「AAAA」,「BBB」) AND start_date> =「XXX」 AND start_date <「YYY」GROUP BY X,startDate ORDER BY X} ' 數據庫有一個表,但沒有連接。我使用session.createSQLQuery將數據發送到MySql。我使用了X和start_date的索引。 –