- 下载: Ramdisk 下载
使用虚拟硬盘Ramdisk对MySQL数据库性能的影响实测
发布日期:2008-03-01
Ramdisk 是一款虚拟硬盘软件。它的作用是把物理内存划出一部分当作硬盘使用。
这篇文章,测试的是在 Windows 2003 下,把系统临时目录设置到虚拟硬盘后,对MySQL数据库性能的影响。
测试环境:
CPU: AMD Athlon 64 3400+ (2.2GHz)
内存:1 GB DDR 333 (3.0-3-3-7)
硬盘:Seagate ST3160812AS (酷鱼九 160G SATA)
操作系统:Windows Server 2003 Standard Edition
MYSQL 版本:6.0.3-alpha-community
测试采用一个 10.0M 的数据表 table1 (含3.7万行数据),测试查询语句为:
select * from table1 order by rand() limit 0,30;
使用 rand() 随机排序的查询,MySQL 会自动创建临时表。
----
测试一:系统临时目录设置在物理硬盘。
按照系统默认,系统变量 TEMP 和 TMP 的值为 C:\windows\TEMP,用户变量 TEMP 和 TMP 的值这里也设为 C:\windows\TEMP。
系统刚启动完成,在 PHPMyAdmin 中运行查询语句,并刷新 10 次,把每次查询用时记录下来,结果如下(单位为秒):
1.7446 1.1523 1.2543 1.5410 1.4012 1.3716 1.4238 1.5215 1.1823 1.1505
---
测试二:系统临时目录设置在虚拟硬盘。
用 Ramdisk 虚拟出一个 128M 的虚拟硬盘 R: 。
把系统变量 TEMP 和 TMP 设为 R:\TEMP,用户变量 TEMP 和 TMP 也设为 R:\TEMP。
重启系统并启动完成后,在 PHPMyAdmin 中运行同样的查询,一样记录 10 次查询用时,结果如下(单位为秒):
1.2243 0.4750 0.4903 0.5119 0.5124 0.4752 0.5029 0.4912 0.4879 0.4814
---
结论:
1) 每个测试的第1次查询,用时都明显比后面的9次要多。这是由于 MySQL 的缓存机制,第1次会把数据载入缓存。
而每个测试的后9次查询,用时相差不大,在合理的范围内跳动.
2) 测试二中,使用虚拟硬盘作临时目录,明显比测试一中用物理硬盘作临时目录快的多。从数据可以看出,查询用时少了一倍以上。
3) 测试的表只有 10.0M ,若是更大的表,理论上速率相差会更多。
4) 本测试中的语句需要创建临时表。若是不需要创建临时表的查询,查询速率相差不大。
Ramdisk 的下载见附件。
这篇文章,测试的是在 Windows 2003 下,把系统临时目录设置到虚拟硬盘后,对MySQL数据库性能的影响。
测试环境:
CPU: AMD Athlon 64 3400+ (2.2GHz)
内存:1 GB DDR 333 (3.0-3-3-7)
硬盘:Seagate ST3160812AS (酷鱼九 160G SATA)
操作系统:Windows Server 2003 Standard Edition
MYSQL 版本:6.0.3-alpha-community
测试采用一个 10.0M 的数据表 table1 (含3.7万行数据),测试查询语句为:
select * from table1 order by rand() limit 0,30;
使用 rand() 随机排序的查询,MySQL 会自动创建临时表。
----
测试一:系统临时目录设置在物理硬盘。
按照系统默认,系统变量 TEMP 和 TMP 的值为 C:\windows\TEMP,用户变量 TEMP 和 TMP 的值这里也设为 C:\windows\TEMP。
系统刚启动完成,在 PHPMyAdmin 中运行查询语句,并刷新 10 次,把每次查询用时记录下来,结果如下(单位为秒):
1.7446 1.1523 1.2543 1.5410 1.4012 1.3716 1.4238 1.5215 1.1823 1.1505
---
测试二:系统临时目录设置在虚拟硬盘。
用 Ramdisk 虚拟出一个 128M 的虚拟硬盘 R: 。
把系统变量 TEMP 和 TMP 设为 R:\TEMP,用户变量 TEMP 和 TMP 也设为 R:\TEMP。
重启系统并启动完成后,在 PHPMyAdmin 中运行同样的查询,一样记录 10 次查询用时,结果如下(单位为秒):
1.2243 0.4750 0.4903 0.5119 0.5124 0.4752 0.5029 0.4912 0.4879 0.4814
---
结论:
1) 每个测试的第1次查询,用时都明显比后面的9次要多。这是由于 MySQL 的缓存机制,第1次会把数据载入缓存。
而每个测试的后9次查询,用时相差不大,在合理的范围内跳动.
2) 测试二中,使用虚拟硬盘作临时目录,明显比测试一中用物理硬盘作临时目录快的多。从数据可以看出,查询用时少了一倍以上。
3) 测试的表只有 10.0M ,若是更大的表,理论上速率相差会更多。
4) 本测试中的语句需要创建临时表。若是不需要创建临时表的查询,查询速率相差不大。
Ramdisk 的下载见附件。
相关附件:
- 上一篇: 截取字符串时,截断HTML的问题
- 下一篇: MySQL 6.0 有严重的 BUG