3億 int 資料 2億 int 資料 求差集

2022-02-13 03:04:54 字數 829 閱讀 5843

兩個大文字,每行一條int資料

3億(int)資料-2億(int)資料 求差集

原始(粗暴)辦法

1redis set 或類似方案

本地記憶體 cpu都撐不住

2持久化兩張表 sql join

mysql join是兩層暴力for的效能太差,還是單執行緒的

sqlserver 三種join方式,1兩層for,2有序列優化join,3 hash join,該場景可用有序列進行join(int型數 hash join沒啥意義),效能遠勝兩層暴力for,另外sqlserver多執行緒計算優化

orcal 和sqlserver類似 細節或有區別,不是很熟悉,反正比mysql強

3 sql insert文字1,遍歷文字2 update 再select

sqlserver 本機mac需要

4hadoop map/reduce 本身自帶sort,說到底和sqlserver join原理差不多,同時用到了多機,多程序/執行緒

4linux命令 grep sort 之類

5bitmap

直接用redis 作位運算 **都不用寫多少

大量int型資料,交差並都都優先考慮bitmap

用redis的 bit 有位數限制

offset引數必須大於或等於0,小於 2^32 (bit 對映被限制在 512 mb 之內)。

單key放不下,就多用幾個

redis [key] = val/(2^32)  

[key] [offset] = val%(2^32) 

setbit [key] [offset] 1

3億資料快速檢索實現

上週有個需求,就是要做乙個檢索庫 億個手機號碼,並且每個號碼 個左右的屬性例 地區,訂閱等資訊。在最短的時候內select出來 分鐘,分鐘 最重要 允許更新。對這些號碼進行傳送資訊後,狀態改變。可以讓他慢慢更新 和幾個同事討論了一下,具體要注意以下幾點 如果傳送下去狀態改變,但是只傳送一半,但狀態改...

讀寫int型txt資料。

自己造輪子果然還是效率低。txt檔案只能存放二進位制或者字元型資料。如果不加控制符,int型資料存放進txt檔案會以字元型存入,這就造成了讀取時的不便。需要自己寫對應的訪問和解析協議保證資料的讀取正確,很麻煩。所以把int型資料存為二進位制型方便讀取。這裡使用的是c語言fread和fwrite fo...

iOS 字典存入int型資料

注意 字典只能當oc物件,不能放c的基礎屬性,加 就是變成nsnumber型別 問題 後台需要上傳如下形式的字段 member id 8,正確操作方式 nsdictionary dic 解析 nsstring member idstr 8 int member id member idstr int...