1300W資料載入和查詢

2022-04-08 21:11:17 字數 2102 閱讀 7792

測試資料數量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 ...