2011-02-13 58 views
0

我有一個InnoDB表,約有17個規範化列約600萬條記錄。該表的大小是〜15GB。表中的查詢開始時間過長,有時會超時/崩潰。我正在考慮拆分桌子,但我很困惑哪種方法會更好。我是否將這些列拆分到相同/不同數據庫的不同表中?或者我將表中的行拆分成另一個數據庫,但是我怎麼知道哪一行是數據庫中的哪一行。MYSQL - 拆分一個非常大的表 - 建議請

有人提到了一些關於Map/Reduce的東西,但讓我更加困惑。任何幫助,將不勝感激。

謝謝。

+1

需要queires和表模式的示例。 – zerkms 2011-02-13 15:53:45

回答

3

拆分你的表以使查詢更快,這不是我會採取的步驟。我首先會嘗試查看您是否無法更改查詢或添加索引以使其更快。我建議在你的問題中增加查詢&表,以便我們提供更好的答案。

如果你已經優化了你的查詢&索引,你仍然可以嘗試partitioning。例如,物理分割你的表,例如不同的硬盤,但它在邏輯上保持一個表。這意味着您不必在改變查詢速度的同時更改查詢。

+0

感謝您的回覆。索引和查詢已經被優化。數據也是標準化的,但我們只是有太多的數據。將按照您的建議查看分區。希望這會有所幫助。 – 2011-02-14 01:55:19