日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java使用多线程查询大批量数据

發(fā)布時(shí)間:2024/3/24 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java使用多线程查询大批量数据 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

前言

在某些時(shí)候,一旦單表數(shù)據(jù)量過大,查詢數(shù)據(jù)的時(shí)候就會(huì)變得異常卡頓,雖然在大多數(shù)情況下并不需要查詢所有的數(shù)據(jù),而是通過分頁或緩存的形式去減少或者避免這個(gè)問題,但是仍然存在需要這樣的場景,比如需要導(dǎo)出一大批數(shù)據(jù)到excel中,導(dǎo)出數(shù)據(jù)之前,首先得把數(shù)據(jù)查詢出來吧?這個(gè)查詢的過程,數(shù)據(jù)量一旦過大,單線程查詢數(shù)據(jù)將會(huì)成為瓶頸,下面嘗試使用多線程來嘗試查詢一張數(shù)據(jù)量較大的表

由于代碼邏輯不是很難,直接上代碼,關(guān)鍵的地方會(huì)有代碼注釋和說明,總體實(shí)現(xiàn)思路:

  • 查詢表的數(shù)據(jù)總量
  • 線程切分,根據(jù)本機(jī)CPU的核數(shù)配置合適數(shù)量的線程處理數(shù),根據(jù)數(shù)據(jù)總量為不同的線程分配不同的查詢數(shù)據(jù)量分段,即不同的線程查詢不同分段的數(shù)據(jù)
  • 將各個(gè)查詢數(shù)據(jù)的線程提交至線程池,這里使用的線程是帶有返回結(jié)果的異步線程

1、測(cè)試控制器

@GetMapping("/getSysLogMulti")@ApiOperation(value = "多線程獲取日志數(shù)據(jù)", notes = "多線程獲取日志數(shù)據(jù)", produces = "application/json")public List getSysLogMulti() {return operLogService.getSysLogMulti();}

2、業(yè)務(wù)實(shí)現(xiàn)類

@Autowiredprivate MultiThreadQueryUtil multiThr

總結(jié)

以上是生活随笔為你收集整理的java使用多线程查询大批量数据的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。