日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

优化内存中DataTable搜索速度,IP区域汇总

發布時間:2025/6/17 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 优化内存中DataTable搜索速度,IP区域汇总 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?????前段時間遇到一個IP的問題,IP庫有大約50w的數據,每天登陸網頁的人數大約有5000,想做出一個柱狀圖,顯示這5000人的城市分布情況,肯定不能將這5000人去讀取5000次數據庫,那么只能將這個IP庫50w的數據放在程序的內存中,但是不做優化,直接去50w數據中篩選,無疑消耗是可怕的,經過幾日測試,現將一個比較好的解決方案提供:

? ①:查詢時候排序,然后根據二分法去讀取內存中的(非數據庫的)數據集

? ②:將數據集放在一個哈希表中,加速單個的查詢速度

? ③:有人說可以再sql中寫自定義函數處理,這個本人沒嘗試過,其他人有好的方案也可以提供

?

?讀取出來放大哈希表的代碼就不貼了,僅貼上二分法的吧,僅供參考:

①:二分法處理這個數據集

static int Dichotomy(Dictionary<int, Int64[]> arr, Int64 v){int low = 0;int high = arr.Count - 1;int mid;while (low <= high){if (low == high){return low;}mid = (low + high) / 2;if (v < arr[mid][0])//查詢的值小于中值,查詢區間就是low到新的上限 {high = mid - 1;//上限的索引值 }else if (v > arr[mid][0])//查詢的值大于中值,查詢區間就是新的下限到high {low = mid + 1;//下限的索引值 }else{return mid;}}return high;}


????? 以上純屬個人觀點,轉載請注明出處

                              ???? --------------AK:2012-10-24

?

?

轉載于:https://www.cnblogs.com/AK2012/archive/2012/10/24/2012-1024.html

總結

以上是生活随笔為你收集整理的优化内存中DataTable搜索速度,IP区域汇总的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。