2012-02-20 65 views
2

TL; RD:Mysql的優化配置(Partiontion)索引/ Hypertable的/ RAID配置(龐大的數據庫)

  1. DB分區與主鍵
  2. 指數的大小問題。
  3. 數據庫大小每天增長約1-3 GB
  4. Raid安裝。
  5. 您有使用Hypertable的經驗嗎?

長的版本:

我剛建/買了一臺家庭服務器:

  • 至強E3-1245 3,4 HT
  • 32GB RAM
  • 6X 1.5 TB WD Cavier Black 7200

我將使用服務器主板IN電話S1200BTL突襲(沒有錢留給RAID控制器)。 http://ark.intel.com/products/53557/Intel-Server-Board-S1200BTL

主板有4倍個SATA 3Gb/s接口和2個SATA 6Gb/s的

我還沒有確定是否可以安裝在RAID 10的所有6hdds,

如果沒有可能,我想(OS/Mysql索引)的4x hdds Raid 10(MYSQL DB)& 2xhdds Raid 0。

(如RAID 0將其對我來說沒有任何問題,我只需要確保DB)

關於DB:

它是一種網絡爬蟲DB,其中域名,網址,鏈接,這些東西被存儲。 所以我想我分區DB主鍵的每個表如 (1-1000000)(1000001-2000000)等。

當我做搜索/ DB中的插入/ select查詢,我需要掃描孔表,引起了一些東西可能是第1行中,另一個在ROW 1000000000000.

,如果我做的這種分區主鍵(auto_increment)會使用我所有的CPU核心?這樣它就可以掃描每個分區並行?或者我應該堅持一個巨大的數據庫沒有分區。

數據庫將是非常大的,對我的家庭系統,現在它的,

Table extract: 25,034,072 Rows 
Data 2,058.7  MiB 
Index 2,682.8  MiB 
Total 4,741.5  MiB 

Table Structure: 
extract_id   bigint(20)  unsigned  NO PRI  NULL auto_increment 
url_id  bigint(20)   NO  MUL  NULL  
extern_link  varchar(2083)   NO  MUL  NULL  
anchor_text  varchar(500)   NO  NULL  
http_status  smallint(2)  unsigned NO  0 

Indexes: 
PRIMARY  BTREE Yes No extract_id  25034072 

link  BTREE Yes No url_id 
          extern_link (400) 25034072 

externlink  BTREE No No extern_link (400) 1788148 


Table urls: 21,889,542 Rows 
Data 2,402.3  MiB 
Index 3,456.2  MiB 
Total 5,858.4  MiB 

Table Structure: 
url_id  bigint(20)  NO PRI  NULL auto_increment 
domain_id   bigint(20)  NO MUL  NULL  
url    varchar(2083)  NO  NULL  
added  date NO  NULL  
last_crawl  date NO  NULL  
extracted   tinyint(2) unsigned NO MUL  0 
extern_links smallint(5) unsigned NO  0 
crawl_status tinyint(11) unsigned NO  0 
status  smallint(2) unsigned NO  0 


INDEXES: 
PRIMARY  BTREE Yes No url_id  21889542 

domain_id  BTREE Yes No domain_id 0 
         url (330) 21889542 

extracted_status BTREE No No extracted 2 
         status  31 

我看我可以修復externlink &鏈接索引,我只是說externlink原因,我需要查詢該字段,我無法使用鏈接索引。你看,我可以調整索引嗎?我的新系統將有32 GB,但如果數據庫以這種速度增長,我將在幾周/月內使用90%的RAM。

請問包裝INDEX有幫助嗎? (性能如何下降?)

其他重要表格低於500MB。

Only the URL Source table is huge: 48.6 GiB 
Structure: 

    url_id BIGINT 
    pagesource mediumblob data is packed with gzip high compression 

    Index is only on url_id (unique). 

從這張表中我可以清除所有需要的數據。

您是否有任何經驗Hypertableshttp://hypertable.org/ < =谷歌Bigtables。如果我轉移到Hypertables,這將有助於我的表現(提取數據/搜索/插入/選擇& 數據庫大小)。我在網頁上閱讀,但我仍然有些無知。因爲你不能直接比較MYSQL和Hypertables。我會盡快試用,必須先閱讀文檔。

我需要一個適合我的設置的解決方案,因爲我沒有錢用於任何其他硬件設置。

感謝您的幫助。

回答

0

Hypertable是抓取數據庫的絕佳選擇。 Hypertable是一個開源的,高性能,可擴展的數據庫,以Google的Bigtable爲藍本。 Google專門爲他們的抓取數據庫開發了Bigtable。我建議您閱讀Bigtable paper,因爲它使用爬網數據庫作爲運行示例。

+0

感謝您的回答Doug。你有Hypertables的經驗,也知道一些教程,基準等,這些不在http://hypertable.org/或http://code.google.com/p/hypertable/託管所有這些信息兩個網站,我已經閱讀。此外我GOOGLE了幾天,我沒有發現任何有用的東西。感謝您的幫助。 – user1015314 2012-02-22 21:03:38

+0

可修改教程:http://code.google.com/p/hypertable/wiki/HQLTutorial這裏有一個最近的基準:http://highscalability.com/blog/2012/2/7/hypertable-routs-hbase-在性能測試 - HBase的-overwhelmed.html。源碼包也包含很多示例代碼。 – cruppstahl 2012-02-23 05:13:15

+0

我確實有Hypertable的經驗。我寫了大部分內容。 :)要做的最好的事情是首先按照獨立安裝說明安裝它:[鏈接](http://www.hypertable.com/documentation/installation/quick_start_standalone/)。完成之後,請閱讀HQL教程:[鏈接](http://www.hypertable.com/documentation/developer_guide/)。我還建議閱讀概述和體系結構文檔:[鏈接](http://www.hypertable.com/documentation/)。您也可以在文檔部分找到代碼示例。我們正在離開code.google.com。 – 2012-02-23 18:02:22