4
我目前正在使用mysql作爲數據庫使用queryDsl,jpa和hibernate的項目。其中一個生成的查詢需要625秒才能執行。由於我沒有自由更改表本身的索引,但我可以對實際查詢使用強制索引,這會在測試期間將查詢時間減少到0.62秒,因此我如何在QueryDSL中執行此操作?如何在QueryDSL中使用強制索引?
我目前正在使用mysql作爲數據庫使用queryDsl,jpa和hibernate的項目。其中一個生成的查詢需要625秒才能執行。由於我沒有自由更改表本身的索引,但我可以對實際查詢使用強制索引,這會在測試期間將查詢時間減少到0.62秒,因此我如何在QueryDSL中執行此操作?如何在QueryDSL中使用強制索引?
您不能直接在Querydsl JPA中使用強制索引,因爲不支持這種語法。可以自定義Hibernate SQL呈現,但它不是微不足道的http://www.znetdevelopment.com/blogs/2009/10/07/using-use-index-with-hibernatemysql/
我建議在這種情況下使用SQL。您可以使用SQL和Querydsl JPA,使用JPASQLQuery
和HibernateSQLQuery
。