2013-01-22 18 views
0

我設計一個新的MySQL數據庫(使用的是InnoDB的引擎),將舉辦約2萬條記錄,每天5年價值融入其中,正在記錄大量數據表(保存的數據=約3 650 000 000行)。現在,顯然它不是這一切存儲在一個表中一個非常聰明的想法,所以這些都是非常我的選擇:在桌子上(多大的改善將在提供真正的MySQL的性能和設計的非常大的表

  1. 使用分區在這個規模?)
  2. 生成一個新表包含一個單月的數據每個(所以,圍繞每桌60個000 000行)

它需要還應當指出,我將不得不做一些多主複製(或集羣)。

現在,我想選項2可能會更好,因爲它將允許查詢最小的可能數據集(當用戶指定要搜索的日期時),並且還將簡化歸檔5年後的數據(只需移動整個表格)。然而,使用選項2意味着我將不得不使用連接,工會,否則我將不得不運行多個單獨的查詢以生成結果集(如果您需要以其他方式訂購,後者不是首選日期)。

因此,我的問題是,有沒有一種方法可以跨多個表並行地運行查詢,除了通過使用連接之外,這種方式將真正把注意力放在速度上?。我正在考慮像Google這樣的人,他們可以通過做或多或少的這種事情來提高搜索速度。

謝謝!

回答

0

好友我建議你去一些像Mongodb這樣的基於大數據的數據庫。在那裏,您可以同時獲得有效處理大數據和快速查詢處理等功能。

+0

是的,我聽說過關於MongoDB和PostgreSQL的一些好消息。儘管我在過去的10年中一直在使用MySQL,但它並不是一個壞系統,所以希望能夠堅持熟悉。像MongoDB能夠處理這麼大的表嗎?還是我仍然需要分割表? – kvheerden

+0

是的,MongoDB可以處理這個問題。在Mysql中,而不是用你的第二個選項,我會建議使用一些基於行的機制來實現它,比如如果將有超過x行,你將創建一個新表。並且還將查詢列用於查詢 –

+1

我找到了這個鏈接,這表明我應該可以很容易地使用MySQL,即使我認爲這是一個很大的負載(如果其中一個FB MySQL工程師看到這篇文章,他們可能會笑,嘟「」業餘愛好者......「)。 [Facebook在增加MySQL規模上分享了一些祕密](http://gigaom.com/2011/12/06/facebook-shares-some-secrets-on-making-mysql-scale/)。 – kvheerden