Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/performance/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows MyISAM.MYD文件的速度非常慢_Windows_Performance_Copy_Solid State Drive - Fatal编程技术网

Windows MyISAM.MYD文件的速度非常慢

Windows MyISAM.MYD文件的速度非常慢,windows,performance,copy,solid-state-drive,Windows,Performance,Copy,Solid State Drive,我们注意到一些MyISAM.MYD文件(MySQL数据库基表)的复制速度非常慢。C:驱动器和D:驱动器都是SSD;理论限制为500MB/秒数据速率。对于计时,我们关闭MySQL服务。以下是6GB文件test.myd的一些计时示例: NET STOP MYSQL56 Step1: COPY D:\MySQL_Data\test.myd C:\Temp --> 61MB / sec copy speed Step2: COPY C:\Temp\test.myd D:\temp

我们注意到一些MyISAM.MYD文件(MySQL数据库基表)的复制速度非常慢。C:驱动器和D:驱动器都是SSD;理论限制为500MB/秒数据速率。对于计时,我们关闭MySQL服务。以下是6GB文件test.myd的一些计时示例:

NET STOP MYSQL56
Step1: COPY D:\MySQL_Data\test.myd C:\Temp      --> 61MB / sec copy speed
Step2: COPY C:\Temp\test.myd D:\temp            --> 463 MB / sec
Step3: COPY D:\Temp\test.myd c:\temp\test1.myd  --> 92 MB / sec
奇怪的结果;为什么一个方向的速度与另一个方向的速度如此不同? 让我们试试这个:

NET START MYSQL56
in MySQL: REPAIR TABLE test; (took about 6 minutes)
NET STOP MYSQL56
Step4: COPY D:\MySQL_Data\test.myd C:\Temp      --> 463 MB / sec
Step5: COPY C:\Temp\test.myd D:\temp            --> 463 MB / sec
Step6: COPY D:\Temp\test.myd c:\temp\test1.myd  --> 451 MB / sec
  • 有人能解释一下复印速度的不同吗
  • 首先,是什么导致了复制速度慢
  • 修复会有什么不同,但优化我们尝试过的 首先,没有什么不同
  • 使用 初始版本(即维修前)?对不起,我没有测试这个 在运行这些测试之前,请执行以下操作
      • REPAIR
        将扫描表格并修复发现的问题。这意味着该表已完全读取

      • OPTIMIZE
        复制整个表,然后将其重命名为旧名称。结果就像读取了整个表一样

      • COPY
        读取一个文件并写入另一个文件。如果目标文件不存在,则必须创建目标文件;在Windows上,这是一个缓慢的过程

      • 读取文件时,数据从磁盘(在您的情况下是SSD)中提取并缓存在RAM中。第二次读取将使用缓存的副本,因此速度更快

      最后一项可以解释您发现的差异

      另一种可能性是“磨损均衡”和/或“写入前擦除”——SSD的两个特性

      磨损均衡是指SSD移动物体以避免过多的“磨损”。请注意,SSD块在N写入后会“磨损”。通过移动块,可以避免这种物理缺陷。(这是企业级SSD的一项功能,但在廉价驱动器上可能会缺失。)

      在SSD上进行写入之前,必须先“擦除”该点。这一额外步骤只是SSD工作方式的物理要求。我怀疑这是否会影响你的问题,但可能会


      我正在删除[mysql]和[myisam]标记,因为这个问题实际上只适用于使用Windows和SSD的文件拷贝。

      Rick,感谢您的关注。我仍然不明白为什么MySQL修复后的表文件复制得这么快。