背景:最近公司技術交流有的同事提出ResultSet分頁的觀點(若是您不知道如何使用ResultSet分頁,請自行google),我一直使用數據庫分頁,以前沒有接觸過ResultSet分頁的概念,不知道他是屬於內存邏輯分頁仍是數據庫分頁,因此本身作了個小測試數據庫
測試數據:(其中只使用了 collect_id,data_time 兩個字段)tomcat
數據量:單表300W測試
數據庫:Mariadb-5.5.25-win32google
①ResultSet 查詢
執行ResultSet查詢前:Java.exe(tomcat 進程)佔用內存 630748Kspa
執行ResultSet查詢後:Java.exe(tomcat 進程)佔用內存 1025224K進程
②NutzDao 查詢
執行NutzDao查詢前:Java.exe(tomcat 進程)佔用內存 623212K內存
執行NutzDao查詢後:Java.exe(tomcat 進程)佔用內存 625608K硬件
①執行ResultSet 查詢使用時間
分頁
ResultSet 分頁用時:[19462] 毫秒,總記錄數:[3000000] 條im
②行NutzDao 查詢使用時間
Nutz Dao 數據庫分頁用時:[12] 毫秒,總記錄數:[3000000] 條
總結:
①
內存佔用 ResultSet 查詢約爲 NutzDao 查詢的 (1025224-630748)/(625608-623212)~=160倍
②
查詢耗時 ResultSet 查詢約爲 NutzDao 查詢的 19462/(12)~=1600倍
固然影響測試數據因素有不少,可是至少這個數據應該能夠說明一些問題,僅供參考