ibatis mysql批量查詢

2021-10-24 02:35:00 字數 784 閱讀 6211

最近寫到的功能,牽扯到批量查詢,使用的一般的分頁查詢,步驟如下:

integer pagesize = 3000;

1.先查詢記錄數

select count(*) from table_name where batch_no=#

2.獲取記錄數並使用在業務層做分頁

integer pagenum = count/pagesize;

if(count%pagesize !=0)

3.分頁查詢,註解傳入 #startrow#,#pagesize#,#batch_no#三個引數,不同的資料庫可以根於此三個引數屬性應用不同的分頁實現 

select * from table_name where batch_no=#  order by id limit #,# 

發現這樣的分頁查詢是在100w的資料以內查詢的時候,速度還是剛剛的,但是當資料量上公升到200萬甚至1000-2000萬,查詢的速度竟然是十幾秒一頁資料;

於是為了優化資料查詢速度,就第三步要改了一下,

3.for迴圈外邊定義乙個qryid,預設為0

遍歷第一頁傳入0,

for迴圈正序查詢結束,將最後的資料的id賦值給qryid,

註解傳入 #qryid#,#pagesize#,#batch_no#三個引數

並且修改一下sql;

select * from table_name where batch_no=#  and id > # order by id limit #

注意:2.一定要有索引哦,id主鍵索引,batch_no,id 索引

ibatis mysql 效能 Ibatis 優化

大概一年左右的時間裡club資料庫的cpu一直處於很高的負荷中,從40 一直攀公升到如今的80 隨著資料量的增加,負擔越來越重,已經頻繁超時,且瀕臨無法服務的邊緣。經長期的調查發現這是ibatis.net的乙個效能問題 同樣適用於ibatis 問題是這樣的 club的主要業務表是comment表,其...

ibatis mysql使用sql函式注意點

1 前奏 select getcataid pid 2 問題描述 在function操作一次之後 假設輸入引數為1000000000 再次操作 輸入2000000000 就發生異常。檢視異常 無發現getcataid 1000000000 colume 3 分析 原來ibatis這裡多此一舉,把底層...

mybatis批量查詢,批量新增,批量更新

一 多條件批量查詢 先上 再講解 select from ifs company where id and code id標籤不用多說,和dao方法一一對應。parametertype標籤寫list就可以,如果是其他型別對應寫就可以。resultmap,自己定義的字段實體類對應。二 批量新增 先上 ...