Mysql
與主機相比,MySQL 在 hyper-v 虛擬伺服器上的導入速度較慢
數據庫轉儲文件:
- 6 MB 大小
- 14k 行
- 10張桌子
伺服器規格(Ubuntu 20.04,虛擬(hyper-v)):
- 作業系統:Ubuntu 20.04.1 LTS
- MySQL 版本:版本 8.0.21-0ubuntu0.20.04.4 for Linux on x86_64 ((Ubuntu))
- 4 核,2 GB 記憶體
- 100 GB 儲存空間
託管 MySQL
- 視窗伺服器
- MySQL 版本:8.0.17 - MySQL 社區伺服器 - GPL
- 硬碟儲存
- 8 GB 記憶體
將轉儲導入主機上的數據庫需要 1-3 秒,在來賓伺服器上導入需要 5-6 分鐘。
iotop 在導入時報告最大寫入速度 5 MB/s。
在 phpmyadmin 上刷新數據庫,我可以看到 1 分鐘後導入了所有行,其餘時間只是更改表:
ALTER TABLE `table` MODIFY `ID` int NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=7;
導入命令:
mysql -u user -p db < /home/user/dump.sql
試過:
- 在客戶機上重新安裝 mysql-server
- 使用 UNIQUE_CHECKS=0 禁用唯一檢查;
- 使用 FOREIGN_KEY_CHECKS=0 禁用外鍵檢查;
打開:“關閉 Windows 寫入記憶體緩衝區”為我解決了這個問題。(我不需要重新啟動)
基準寫入速度,設置前後。
dd if=/dev/zero of=/tmp/test2.img bs=512 count=1000 oflag=dsync
測試 SSD 速度,看看是否是問題所在
遵循本指南:
dd if=/dev/zero of=/tmp/test2.img bs=512 count=1000 oflag=dsync
對我(Samsung evo 860 SSD)來說,修復前的結果約為80 kB/s。
如果 SSD 速度慢,請修復它
遵循本指南。建議的修復方法之一是針對
trim
所有 SSD:sudo fstrim -av
您將修剪等於磁碟上可用空間的數量。重啟系統跟進
重啟後,我的寫入速度達到了280 kB/s,mysql 導入又恢復了正常速度。