2012-03-28 50 views
2

我正在尋找在執行上的數據庫表重搗鼓/數據挖掘的最佳途徑一些一般性的建議,在不影響正規網站上的查詢表的性能。一些計算可能涉及加入幾個表格,並涉及複雜的排序和排序。所以「使用更好的索引」並不總是解決方案。執行繁重運算桌子上,而不會影響表

這個問題並不具體。我正在尋找一種解決多年來多次出現的問題的通用方法。所以我沒有一個特定的表格模式來顯示特定的查詢。我已經考慮使用mysqldump首先轉儲表,然後以不同的名稱重新導入表,然後在該臨時表上執行我的重型計算。我的系統管理員不喜歡這個想法,所以我正在尋找人們想出的解決這類問題的其他解決方案。

+0

也許是一個表的副本? – 2012-03-28 03:36:11

+0

複製。將表格複製到另一臺服務器並在那裏進行處理。它與你的mysqldump的想法基本相同,只有你讓MySQL爲你完成所有工作。 – 2012-03-28 10:35:39

+0

@ N.B。你會說如果我正在進行的複製數據庫是一個在生產中使用的奴隸,那麼這很好嗎?或者它應該是一個完全不同的數據庫,僅用於大型計算? – mellowsoon 2012-03-29 15:55:40

回答

2

如果您的「嘎吱嘎吱」只能讀取,而您沒有做任何需要寫回生產數據的任何內容,請使用主/從複製,並使用Slave來滿足您的所有報告和數據分析需求。複製鏈接將保持從屬設備上的值始終保持最新,並且您可以根據需要以儘可能多的負載點擊從屬設備,而不會減慢爲生產系統提供服務的主設備。

0

如果你想避免影響生產數據庫的性能,我以前使用的唯一的解決辦法是到另一個數據庫服務器上運行查詢。

我會對整個數據庫進行備份,然後在單獨的服務器上進行恢復。

顯然,如果你想分析實時數據,你不能這樣做。但對於大多數分析而言,前一天的快照就足夠了。

+1

我很好奇你如何將生產數據庫移到另一個數據庫服務器。我導入到mysql後mysqldump是slooooooow。 :) – mellowsoon 2012-03-28 17:49:25

+0

使用SQL Server它是相對無痛的。運行完整備份。將數據庫備份文件複製到新服務器。從備份還原數據庫。最慢的部分是備份文件的副本。這完全取決於數據庫的大小。 – 2012-03-28 21:44:17

相關問題