程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> [搜片神器]DHT後台管理程序數據庫流程設計優化學習交流

[搜片神器]DHT後台管理程序數據庫流程設計優化學習交流

編輯:C#入門知識

謝謝園子朋友的支持,已經找到個VPS進行測試,國外的服務器: http://h31bt.com 大家可以給提點意見...

服務器在抓取和處理同時進行,所以訪問速度慢是有些的,特別是搜索速度通過SQL的like來查詢慢,正在通過分詞改進中。。

DHT抓取程序開源地址:https://github.com/h31h31/H31DHTDEMO

數據處理程序開源地址:https://github.com/h31h31/H31DHTMgr

-----------------------------------------------------

目前在數據庫數量從量的增加到100多萬條數據時,數據庫的查詢插入就會面臨著比較慢的問題,下面就個人在整個設計過程中的方法與大家交流學習下。

個人目前采用的方法有:

由於中間調試程序,導致第一個表數據插入過多。

 看來每個國家的前10名下載工作。

5.當程序有些錯誤的時候,數據庫有些字段設計錯誤,必須將程序全部重新跑一次的時候,跑了10幾天數據量需要快速來處理,如何解決速度問題,就需要考慮了,主要采用的方法還是白名單的方式,將已經處理過的正確的HASH字段存儲到一個表中,然後程序多線程重新處理,1天就可以差不多跑完10天的數據量。

1.優化網站的查詢代碼?目前網站的功能簡單,唯一能夠處理的統計分析功能也已經被程序處理了,網站只有查詢功能了。

2.減少數據庫的查詢對比工作,今天就主要介紹下采用 布隆過濾器 (Bloom Filter) 黑名單的方法來減少數據庫查詢工作。

3.對網站的關鍵詞LIKE語句進行優化考慮?這是很重要的一塊工作,後期繼續討論如何優化此模塊。

4.。。。。。。。。。。?大家的意見

 

BloomFilter——大規模數據處理利器

 Bloom Filter是由Bloom在1970年提出的一種多哈希函數映射的快速查找算法。通常應用在一些需要快速判斷某個元素是否屬於集合,但是並不嚴格要求100%正確的場合。

12. 用HashSet將訪問過的URL保存起來。那只需接近O(134

Bloom Filter的算法

111,str),h(2,str)…… h(k,str)。然後將BitSet的第h(1,str)、h(221,str),h(2,str)…… h(k,str)。然後檢查BitSet的第h(1,str)、h(2

 

 -------------------------------

有了基本的思路後,我們采用了8個HASH生成函數來減少沖突概率,現提供代碼類:

H31BloomFilter

此類有保存到文件和從文件中加載數據的功能,方便程序退出保存黑名單。

此類存儲了200000000條數據,占用內存在20M左右,使用後就減少從數據庫查詢工作,從而讓網站的查詢速度也快些。

以20M的內存來代替SQL數據庫的查詢工作還是值得的,雖然兩都都很花費CPU,但內存的比對肯定比數據庫快。

 

 希望大家多多推薦哦...大家的推薦才是下一篇介紹的動力...

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved