測試資料數量1300w.測試載入時間110秒-150秒。
測試查詢速度,越靠前越快。最後一條資料耗時6-8秒
#include #include#include
#include
#include
#include
#include
#include
using
namespace
std;
//執行緒鎖
static pthread_mutex_t mutex=pthread_mutex_initializer;
//資料儲存的,key為郵箱,value為行號
multimap*datas=new multimap;
//資料儲存2,key為行號,value為行內容長度
map*datahnums=new map;
int tcnt=0
;file*fp;
bool flag=false
;int cnt=-1
;void
loaddatamap()
//如果還未結束
if(!isend)
pthread_mutex_unlock(&mutex);
if(!isend)
if(ocnt!=0&&ocnt%100000==0
)
}//將剩下的資料填充到堆空間
pthread_mutex_lock(&mutex);
datas->insert(tmpdatas.begin(),tmpdatas.end());
datahnums->insert(tmphnums.begin(),tmphnums.end());
tmpdatas.clear();
tmphnums.clear();
tcnt--;
if(tcnt<=0
)
pthread_mutex_unlock(&mutex);}//
載入資料
void
init()
clockid_t start=clock();
//開啟30條執行緒載入資料
for(int i=0;i<30;i++)
//等待子執行緒
while(!flag)
clockid_t end=clock();
int z=0
; cout
<<"
資料初始化完成:
"耗時:"
<<((double)(end-start))/clocks_per_sec<<"秒"
根據條件列印n條資料
void loaddatatop(int
n)
char row[1024
]; cout
<<"
********************************
"
}cout
<<"
********************************
"
根據行號取資料
void loaddatabyhnum(int
n)
int h=0
;
//計算出檔案指標跳轉的位置
for(int i=0;i)
else
}//跳轉指標直接讀取一行
fseek(fp,h,seek_set);
char row[1024
]; fgets(row,
1024
,fp);
cout
fclose(fp);
}int
main()
else
if(num==2
)
else
}else
cout
<<"
輸入了錯誤的選項:
"<"
,請重新輸入!
"<}
return0;
}
Mybatis延遲載入和查詢快取
在全域性配置引數設定開啟延遲載入總開關 name lazyloadingenabled value true name aggressivelazyloading value false settings 設定項 描述允許值 預設值lazyloadingenabled 全域性性設定懶載入。如果設為 ...
mysql 聯表查詢 100w 資料優化
閒來無事,使用vue封裝了個table元件,封裝完成後想測試下,資料量小的情況下,能迅速展現資料,資料上了100w後,直接超時,結果一步步排查,發現是sql查詢的問題 使用表 訂單表 order 100w 商品表goods 使用者表 user 未優化前sql查詢語句 select o.order i...
SQL查詢效率 100w資料查詢只要1秒
sql查詢效率 100w資料查詢只要1秒 關於sql查詢效率,100w資料,查詢只要1秒,與您分享 機器情況 p4 2.4 記憶體 1 g os windows 2003 資料庫 ms sql server 2000 目的 查詢效能測試,比較兩種查詢的效能 sql查詢效率 step by step ...