MySQL: 進階用法
如何設定、優化、匯出或匯入 MySQL 資料
👋 歡迎來到 Stackhero 文件!
Stackhero 提供即用型 MySQL 雲端 解決方案,帶來多項好處,包括:
- 無限連接和傳輸。
- 包含 phpMyAdmin 網頁介面。
- 只需點擊即可輕鬆進行 更新。
- 由 專用私有 VM 提供的最佳 效能和強大 安全性。
節省時間並簡化您的生活:只需 5 分鐘即可嘗試 Stackhero 的 MySQL 雲端託管 解決方案!
設定 MySQL 最大連線數
在 Stackhero,您的 MySQL 伺服器可同時處理的連線數並沒有硬性限制。您可以直接在 Stackhero 控制台靈活調整這個參數,以配合您的應用程式需求。
雖然將這個數值設得越高似乎越好,但建議您設定一個實際可行的上限。每一個開啟的連線都會佔用伺服器記憶體(RAM),如果設定過高,可能會對您的實例造成不必要的壓力,甚至導致資料庫不穩定。
為 InnoDB 或 MyISAM 引擎優化 MySQL
如果您的資料庫主要使用 InnoDB 儲存引擎,您可以在 Stackhero 控制台啟用「InnoDB Optimizations」選項,以提升效能。
同樣地,如果您的資料庫採用 MyISAM 儲存引擎,啟用「MyISAM Optimizations」選項也能帶來效能上的改善。
如果您不確定資料庫使用哪一種儲存引擎,或不確定該選擇哪個優化選項,建議您預設啟用這些選項。您隨時可以根據實際工作負載或資源使用情況進行微調。
使用 MySQL 指令列工具(mysql、mysqldump 等)
MySQL 的指令列工具如 mysql 和 mysqldump,在匯入或匯出資料時非常實用。
其中一個簡單的方式是直接在 Docker container 內執行這些工具。這樣可以保持本機環境乾淨,無需手動安裝。
如果您的工作流程沒有用到 Docker,也完全沒問題。您可以考慮在 Stackhero 上使用 Code-Hero。這個瀏覽器端開發平台讓您直接在瀏覽器中作業,無需在本地安裝任何軟件。只需幾分鐘即可了解更多並立即試用,請參閱 Code-Hero on Stackhero。
要開始使用 Docker,您可以用以下指令啟動一個 MySQL container:
docker run -it -v $(pwd):/mnt mysql:<MYSQL_VERSION> /bin/bash
請將
<MYSQL_VERSION>替換為您需要的版本。例如,若您在 Stackhero 上運行 MySQL8.0.36-0,請填寫8.0.36(不需加上結尾的-0)。
Container 啟動後,您可以用以下指令測試連線:
mysql -u root -p -h <XXXXXX>.stackhero-network.com -P <PORT>
這裡,您的目前目錄會掛載到 container 內的 /mnt(透過 $(pwd):/mnt 參數)。這樣方便您在本機與 container 之間傳送檔案。例如,若您想將資料庫備份到本機,可以使用:
mysqldump -u root -p -h <XXXXXX>.stackhero-network.com -P <PORT> <DATABASE> > /mnt/<DATABASE>.sql
匯出 MySQL 資料庫
若要建立資料庫備份(即「dump」),您可以直接在本機使用 mysqldump 工具。(如需在 Docker 內執行,請參考前一節。)
匯出 MySQL 資料庫到您的電腦
若要將 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 檔案。
匯入 MySQL 資料庫到您的伺服器
若要將本機的資料庫匯入 Stackhero 實例,請使用以下指令:
mysql -u root -p -h <XXXXXX>.stackhero-network.com -P <PORT> <DATABASE> < yourDump.sql
請記得將 yourDump.sql 替換為您要匯入的 SQL 檔案名稱。