2010-06-19 27 views
0

我有一些大的MySQL生產表需要轉儲,以便我可以在Hadoop中運行一些分析。我應該瞭解有關生產數據庫的轉儲和查詢的最佳實踐?如果我只是進行轉儲/讀取(並且不寫入),是否需要擔心影響生產性能?查詢和製作生產數據庫的轉儲

回答

1

是的,你確實需要擔心它。 MyISAM表將在讀取時鎖定,不允許修改,只是其他讀取。 InnoDB沒有這個問題,但是如果你正在查詢大量的數據,它會被鎖定。幾乎在所有情況下轉儲都會鎖定任何表類型。

通常做的是你設置一個從屬數據庫,並做所有你的查詢。甚至爲了報告目的而設置一個奴隸。您將需要停止MySQL服務器以設置主/從配置。但一旦你這樣做了一次,你可以使用一個奴隸創建其他奴隸。

1

這取決於數據庫大小和複製設置。

最佳設置(意見)將有一個主人不斷寫入一個奴隸(否則是隻讀的)。這樣你就可以在slave上運行一個mysqldump,並且生產應用程序可以繼續寫入master,而不必擔心mysqldump的阻礙。

聲明:我是MySQL愛好者,而不是DBA。穀物鹽等

+0

我們在大約一年的時間裏將它用於生產,併爲我們節省了大量的日常停機時間(10分鐘事宜!)。 – Wrikken 2010-06-19 17:25:13