一段分析資料的總結

2021-06-14 18:21:13 字數 1221 閱讀 4003

業務背景:

有乙個表中存在1億的資料,存著個人資訊(城市、單位、學校等內容),而這些內容在字段中儲存的是json,需要將這些資料分析後,算出這些內容的離散模型,取出top100。

最先的實現方案是批量查出來1w資料,分析後一條條更新,發現更新太慢。隨後做了如下改進,也是總結:

1、先查詢後更新的操作,用mysql考慮 on duplicate key update

但是表中必須有主鍵或者唯一索引

2、大量操作要批量更新,eg:

insert into sina_user_count(name,type,count) 

values (?,?,?),(?,?,?),(?,?,?)...

on duplicate key update count=count+values(count)

3、不要拼接字串,要用佔位符「?」,因為儲存內容中有特殊字元,如果拼接sql會遇到異常

4、迴圈中注意清除快取的資料,這是寫了乙個bug

**片段如下:

public void analysis() 

} catch (exception e)

}//更新

logger.info(">>>>>>>>>>>>>>>>> update start");

updatecount(comps, 1);

logger.info(">>>>>>>>>>>>>>>>>update end");

//更新最大id和查詢

this.update("update_sina_user_count_max", maxid, countid);

logger.info(">>>>>>>>>>>>>>>>>>>=" + maxid);

list = this.findforlist("query_sina_user_1", maxid, 10000);

logger.info(">>>>>>>>>>>>>>>>>list.size=" + list.size());}}

private void count(mapmap, string key) else

}private void updatecount(mapmap, int type) else

}if (!params.isempty())

//第一版程式沒有此**,導致map越來越大,低階錯誤啊

map.clear();

}

一段分析資料的總結

業務背景 有乙個表中存在1億的資料,存著個人資訊 城市 單位 學校等內容 而這些內容在字段中儲存的是json,需要將這些資料分析後,算出這些內容的離散模型,取出top100。最先的實現方案是批量查出來1w資料,分析後一條條更新,發現更新太慢。隨後做了如下改進,也是總結 1 先查詢後更新的操作,用my...

一段時間的總結

沒有記錄的習慣,可能是因為文筆不好,不會表達,不善於用文字表達出心中的想法,也許是因為忙碌,一直想著向前走,沒有停下來看看的心態,更可能是因為懶吧。大學過了四分之三了,記得應該是就大一的時候寫過一次總結,以後就是一直就這麼過了,經歷就是經歷了,也有記錄的想法但是沒有行動。大學雖然是資訊管理專業但是幾...

一段簡單的ARM彙編分析

假設 段.text首位址為0x8054 錯誤的 示例 text code 32 global start start bl main 1.pc 0x8054,lr 0x0 b main push 2.pc 0x805c,lr 0x8058 bl func1 3.pc 0x8060,lr 0x8058...