這裏的情況:轉儲在MySQL從一個數據庫中選擇數據到另一個
我有一個遠程服務器上的MySQL數據庫。我需要來自其中4個表格的數據。有時候,這些表格的模式會改變(添加新的字段,但不會被刪除)。目前,這些表格有> 300,000條記錄。
該數據需要導入到localhost mySQL實例中。這些相同的4個表(具有相同的名稱)存在,但所需的字段是遠程數據庫表中字段的子集。這些本地表中的數據被認爲是隻讀的,永遠不會寫入。一切都需要在一個事務中運行,所以本地表中總是有一些數據,即使它已經過時了。本地主機表由活動網站使用,因此整個過程需要儘快完成,以最大限度地減少停機時間。
此過程每天運行一次。
的選項,因爲我看到他們:
獲取結構的mysqldump /遠程表的數據,並保存到文件。刪除localhost表,並運行轉儲的sql腳本。然後重新創建4個表中所需的索引。
截斷localhost表。在PHP中的遠程數據庫上運行SELECT查詢,並僅檢索所需的字段而不是整行。然後遍歷結果並從這些數據創建INSERT語句。
我的問題:
- 明智的性能,這是我最好的選擇?
- 哪一個會完成最快?
- 任一人是否會在服務器上承受較重的負載?
- 索引 表將在兩個選項中花費相同的時間?
如果它是一個選項,使用mysql來查看活動鏡像,甚至是沿着redis的路線 - 值得研究。 – damianb 2012-02-17 23:26:40
@damianb - 我不熟悉主動鏡像。你能詳細說明一下嗎? – deckerdev 2012-02-17 23:35:33
我應該說數據庫複製,道歉。 :) – damianb 2012-02-18 23:37:51