MySQL: 進階用法

如何設定、最佳化、匯出或匯入 MySQL 資料

👋 歡迎來到 Stackhero 文件!

Stackhero 提供即用型 MySQL cloud 解決方案,帶來多項好處,包括:

  • 無限連接和傳輸。
  • 包含 phpMyAdmin 網頁介面。
  • 只需點擊即可輕鬆進行 更新
  • 專用私有 VM 提供的最佳 效能和強大 安全性

節省時間簡化您的生活:只需 5 分鐘即可嘗試 Stackhero 的 MySQL cloud hosting 解決方案!

在 Stackhero,您的 MySQL 伺服器可同時處理的連線數並沒有硬性限制。您可以直接在 Stackhero 控制台中調整這個參數,以符合您的應用程式需求。

雖然將這個數值設得越高似乎越好,但建議您選擇一個實際且合適的上限。每一個開啟的連線都會佔用伺服器的記憶體(RAM),設定過高可能會對您的實例造成不必要的壓力,甚至導致資料庫不穩定。

如果您的資料庫主要使用 InnoDB 儲存引擎,您可以在 Stackhero 控制台啟用「InnoDB Optimizations」選項,以提升效能。

同樣地,如果您的資料庫採用 MyISAM 儲存引擎,啟用「MyISAM Optimizations」選項也能帶來效能上的改善。

如果您不確定資料庫使用的是哪一種儲存引擎,或是不知道該選擇哪一個最佳化選項,建議您可以預設啟用這些選項。日後可依據實際工作負載或資源使用情況再進行微調。

MySQL 的指令列工具如 mysqlmysqldump,在匯入或匯出資料時非常實用。

一個簡單的方式是直接在 Docker 容器中執行這些工具。這樣可以讓您的本機環境保持乾淨,無需手動安裝。

如果您的工作流程中沒有使用 Docker,也完全沒問題。您可以參考 Stackhero 上的 Code-Hero。這個瀏覽器端開發平台讓您直接在瀏覽器中作業,無需在本機安裝任何軟體。只要幾分鐘即可了解並體驗,請造訪 Stackhero 上的 Code-Hero

若要開始使用 Docker,您可以透過以下指令啟動一個 MySQL 容器:

docker run -it -v $(pwd):/mnt mysql:<MYSQL_VERSION> /bin/bash

請將 <MYSQL_VERSION> 替換為您需要的版本。例如,若您在 Stackhero 上使用 MySQL 8.0.36-0,請填寫 8.0.36(不需加上結尾的 -0)。

當容器啟動後,您可以用以下指令測試連線:

mysql -u root -p -h <XXXXXX>.stackhero-network.com -P <PORT>

這裡,您的目前目錄會掛載到容器內的 /mnt(透過 $(pwd):/mnt 參數)。這樣方便您在本機與容器間傳輸檔案。例如,若您想將資料庫備份到本機,可以使用:

mysqldump -u root -p -h <XXXXXX>.stackhero-network.com -P <PORT> <DATABASE> > /mnt/<DATABASE>.sql

若要建立資料庫備份(即「dump」),您可以直接在本機使用 mysqldump 工具。(如需在 Docker 內執行,請參考前一節說明。)

若要將 Stackhero 實例上的資料庫匯出到您的電腦,請執行:

mysqldump -u root -p -h <XXXXXX>.stackhero-network.com -P <PORT> <DATABASE> > <DATABASE>.sql

請將 <XXXXXX>.stackhero-network.com<PORT><DATABASE> 替換為您的實際實例資訊。執行指令後,系統會要求您輸入 root 密碼。mysqldump 工具會將您的資料表儲存為 <DATABASE>.sql 檔案。

若要將本機的資料庫匯入 Stackhero 實例,請使用下列指令:

mysql -u root -p -h <XXXXXX>.stackhero-network.com -P <PORT> <DATABASE> < yourDump.sql

請記得將 yourDump.sql 替換為您要匯入的 SQL 檔案名稱。