Mysql

將大型 mysql 表數據從一台伺服器移動到另一台伺服器

  • December 15, 2021

我有一張表,每天都會向其中插入數百萬條數據。隨著表大小增長超過 10 GB,伺服器在獲取 api 和生成報告方面的性能存在問題,這些問題基於上表。我打算做的是將舊的,比如 1 週的數據移動​​到另一台伺服器,並保持目前表的大小始終很小。我正在執行一個 php 應用程序來獲取 api 並在伺服器上生成報告。

我的擔憂是:

  1. 這是正確的方法還是我的問題有其他解決方案?
  2. 最好的方法是什麼?

您可以使用 cron 作業連接到現有數據庫,備份表,選擇需要移動的行(超過一周)斷開與 sql 伺服器的連接,連接到新伺服器,插入您擁有的行之前使用循環選擇,與第二台伺服器斷開連接,重新連接到第一台伺服器,然後刪除不再需要的行。

這是一種方法,我不知道它是否最佳,但它會起作用,不要忘記計劃 cron 作業僅在第一台伺服器處於最低使用率時執行,以確保您不會影響實時伺服器的性能。

我會將數據導出到一個平面文件,gzip 它,將它傳輸到遠端伺服器,解壓縮它。

禁用目標主機表上的索引,載入數據,重新啟用索引。

這在啟用索引階段可能很耗時,但它會是最快的傳輸和載入時間。

引用自:https://dba.stackexchange.com/questions/143565