2016-02-13 20 views
0

我們在mysql 5.6上有大型表。現在我們想要改變這張表的模式。我們沒有在現有表上進行alter table,而是將整個表數據複製到新表中。將大型mysql錶行複製到新表中

使用查詢類似以下

insert into new table select * from old table 

表的大小大約是350 GB,有4.5億行。

的問題是如何從mysql客戶

  1. 我應該在後臺運行,運行此類型的長時間運行的查詢,確實有可能,類似的nohup。

  2. 如果mysql客戶端連接在正在運行的查詢中間退出會發生什麼情況。

  3. 會發生什麼。如果我關掉我的筆記本電腦使用我的MySQL客戶端連接

所有我只是不想打破我查詢後執行命令後,請建議最佳實踐。

回答

0

要達到此目的,您可以使用Cron。 Cron是用您的編程語言編寫的腳本,可在後臺執行,無需任何用戶交互。所以它是你的第一個問題的答案。

請在您的服務器上設置此cron。所以不會有任何中斷的問題。請將大量執行時間設置爲腳本。這是你第二個問題的答案。

由於Cron在服務器上設置,它將獨立於您的任何機器,因此無需擔心關閉這是您的第三個問題。

希望它能幫助你。

+0

其谷歌雲服務器。我無法在那裏設置cron – Rams

+0

您不需要在sql server上設置cron。您可以在代碼放置的託管服務器上進行設置。 – PHPExpert