Mysql

與主機相比,MySQL 在 hyper-v 虛擬伺服器上的導入速度較慢

  • October 9, 2020

數據庫轉儲文件:

  • 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 寫入記憶體緩衝區”為我解決了這個問題。(我不需要重新啟動)

關閉 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 導入又恢復了正常速度。

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