TL; RD:Mysql的優化配置(Partiontion)索引/ Hypertable的/ RAID配置(龐大的數據庫)
- DB分區與主鍵
- 指數的大小問題。
- 數據庫大小每天增長約1-3 GB
- Raid安裝。
- 您有使用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).
從這張表中我可以清除所有需要的數據。
您是否有任何經驗Hypertables? http://hypertable.org/ < =谷歌Bigtables。如果我轉移到Hypertables,這將有助於我的表現(提取數據/搜索/插入/選擇& 數據庫大小)。我在網頁上閱讀,但我仍然有些無知。因爲你不能直接比較MYSQL和Hypertables。我會盡快試用,必須先閱讀文檔。
我需要一個適合我的設置的解決方案,因爲我沒有錢用於任何其他硬件設置。
感謝您的幫助。
感謝您的回答Doug。你有Hypertables的經驗,也知道一些教程,基準等,這些不在http://hypertable.org/或http://code.google.com/p/hypertable/託管所有這些信息兩個網站,我已經閱讀。此外我GOOGLE了幾天,我沒有發現任何有用的東西。感謝您的幫助。 – user1015314 2012-02-22 21:03:38
可修改教程: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
我確實有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