好久沒有寫部落格了,最近一直在做效能優化,抽時間把工作中的一些心得寫下來。
分頁是程式中乙個非常常見的功能,一般包含2部分的內容(資料列表和總數)。
分享一下各種偽**和思路(不包含業務搜尋條件的優化和db相關的優化)。
//1.完成需求的思路(偽**)
public
vo getlist(string mis)
// 2.稍微優化一下的思路(偽**)
public
vo getlist(string mis)
//查詢資料列表
listlist =dao.querylist(mis);
vo.setcount(count);
vo.setlist(list);
return
vo;}
// 3.快取count欄位的思路(偽**)
public
vo getlist(string mis)
//判斷總數是否等於0,等於0就直接返回
if(count == 0)
//查詢資料列表
listlist =dao.querylist(mis);
vo.setcount(count);
vo.setlist(list);
return
vo;}
//4.上千萬級以上資料的思路:
//1.將獲取資料列表和總數拆分成2個介面提供
//2.前端快取記錄總數
//3.後端傳送第n(n>1)頁的記錄總數
//請根據實際情況調整使用
//獲取資料列表(偽**)
public
vo getlist(string mis)
//查詢資料列表
listlist =dao.querylist(mis);
vo.setcount(count);
vo.setlist(list);
return
vo;}
//獲取count欄位(偽**)
public
vo getcount(string mis)
//判斷總數是否等於0,等於0就直接返回
if(count == 0)
//查詢資料列表
vo.setcount(count);
vo.setlist(
null
);
return
vo;}
謝謝
,根據自己的場景調整key
Mysql 效能優化隨筆
今天,解決乙個在大量資料環境下,查詢mysql資料庫恢復的功能丟資料問題。在除錯過程中發現乙個現象,半個小時大約才插入了2.5萬條記錄。12小時才能插入60多萬條記錄。小量資料恢復是沒有問題。只有在大量資料條件下恢復採用問題,200多萬條記錄的資料庫恢復,我得恢復到猴年馬月啊。正好今天時間寬鬆。優化...
MySQL分頁效能優化
在對大表進行分頁時,如果在服務端實現分頁,大多數情況採用sql的limit語法來實現。但是當頁數越來越大時,效能很可能成為問題,尤其是需要查詢表的所有字段。1.索引與非索引字段 在查詢的結果集中,如果只包含索引字段,效能相比於包含非索引字段,差別很大。下面是乙個簡單的例子,在大約50w行的表上操作 ...
mysql 分頁效能優化
最簡單的分頁方法是這樣的 select from exarticletemp order by createdate desc limit 10000,10 該表中存在5w左右資料 執行時間平均在10s左右,因此該種方式在資料量大的情況下查詢效率極低。優化方式有以下幾種 1.此種方式平均在7 8s之...