最近我開始學習Hibernate,並在瀏覽時遇到了這個站點:Hibernate Vs JDBC。我們不應該在大型數據庫中使用hibernate
該鏈接表示有2個表格 - User
& Contract
其中每個用戶有3個合同。 User
中的記錄數爲100,000
,Contract
表中的記錄數爲300,000
。
現在鏈接給出了一個例子,說明當我們的記錄在十萬個範圍內時,它對性能的影響。
我跑我的機器上的代碼和普通的JDBC代碼只花了486 ms
通過連接這兩個表中得到User
& Contract
細節。
現在,如果我們使用Hibernate進行同樣的操作,然後花了大量的時間,如下圖所示:
// Using Fetch mode as **@Fetch(FetchMode.SUBSELECT)**
test1 : 11
// Using Fetch mode as **@Fetch(FetchMode.SELECT)**
test2 : 50
// Using Fetch mode as **@Fetch(FetchMode.JOIN)**
test3 : 45
// Using HQL query using **join fetch** option
test4 : 7
// Using Hibernate native SQL query
test4 : 3
的數字在這裏在幾秒鐘內給出。
那麼這是否意味着Hibernate僅適用於小型項目?
如果我的數據庫有大約幾十萬的範圍記錄,我們應該使用普通JDBC?我認爲這個範圍的記錄對許多應用程序來說很常見,那麼開發人員在這種情況下如何使用hibernate?
您是否嘗試過使用Criteria?只是好奇.. –
@ user1354678,不,我只是按照我提到的鏈接給出的例子。 – user3181365
也許只是缺少一個索引? – Seelenvirtuose