A. java如何讀取1千萬級別的數據
如果數據很龐大的情況,估計沒有人會直接使用
select * from table ;
select * from table limit 1000000;12
之類的SQL語句,這樣的操作別說資料庫的操作很慢了,在網路IO傳輸也是一個很大的問題,
把一千萬的數據讀取出來在網路進行傳輸,這樣性能消耗也會有瓶頸。
所以,讀取大批量的數據一般都是採用分批次的讀取方式。
(一)通過測試,一萬條數據一次性讀取出來所花費的時間要比分十次,每次讀1千數據的速度要慢很多。
(二),主鍵是uuid,可以進行排序,利用排序和比較值的大小來分批讀取數據。
SELECT * FROM `kw_seo_keyword` as t
WHERE t.id > '31baf874-0fc5-4bb0-82ff-7bc77c6b63f5'
ORDER BY t.id
LIMIT 10001234
每一次,讀取一千條數據,然後取這一千條數據的有序集合的最後一條數據的id,在進行大小的比較。如此反復,直到數據讀取完為止。
(三),安全性的考慮,執行上千萬的數據,有時候程序出現異常,結果修改異常後再重新這上千萬的數據,那就太蛋疼了。所以我們分批次處理數據的時候。
比如說,我們每次讀取一千條數據,等集合的數據超過100萬的時候,就處理數據,然後通過一個redis的key來保存最後一次的id。
B. java web前端如何按條件查詢資料庫大量數據
1.參數傳到後台,通過hibernate的hql語句寫一個普通的模糊查詢就可以了,hql基本無法優化,只能加版索引。權
2.用jdbc或者mybatis。
3.配置文件應該是jdbc.properties吧?一般不需要,因為jdbc.properties里一般只寫driver 、url、username和password,頂多還有一些連接池相關的配置。