最近寫到的功能,牽扯到批量查詢,使用的一般的分頁查詢,步驟如下:
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,自己定義的字段實體類對應。二 批量新增 先上 ...