2017-02-22 74 views
0

下运行MySQL我在加快目前正使用MySQL的持久性测试套件的过程。我在my.cnf改变datadirtmpdir使用RAMDisk中,如下图所示。上RAMDisk的

datadir   = /run/shm/mysql 
tmpdir   = /run/shm/mysqltemp 

的问题是,我每次运行整个测试套件,在某些时候我碰到了外键约束冲突时,测试尝试删除某些行的部分功能进行测试。怪异的是,当我不上的RAMDisk运行MySQL或当我离开datadir在默认/var/lib/mysql/但只改变tmpdir这不会发生。我想在RAM中运行与datadir的测试,因为我注意到,清理的逻辑是极快的,当我这样做。

有人能帮忙指出我可能是错在这里做什么?

+0

对不起我的意思,离开DATADIR但只改变TMPDIR。我将编辑该问题以纠正该问题。 – ivanorone

回答

1

你确定你有足够的内存就可以运行MySQL。此外,它的不建议上RAMDISK运行MySQL。

说起优化。您应该使用MEMORY类型的数据存储,当然也可以在SSD上运行。 HDD/SSD之间的主要区别在于I/O等待时间,这就是为什么如此多的服务器现在使用像REDIS这样的内存(缓存)数据库。

查看一下,好运气的优化。

+1

感谢您的帮助。我在生产中没有在RAMDisk上运行MySQL,它仅用于测试以及仅具有更快测试套件的目标。 与存储器类型的数据存储,我真的不希望使用,因为我想要检测的配置是尽可能接近生产在这里我使用InnoDB运行。 我也已经在使用SSD。该套件以超过11小时,没有任何我的问题谈了优化和大约3个小时的时候,我只改变TMPDIR到RAMDISK – ivanorone

+0

上的RAMDisk运行InnoDB的不应该是问题,但正如我所说的它是不推荐使用。外键/索引的损坏可能是由于MySQL空间不足导致的。你也可以提到你正在使用的存储系统的版本吗? –

+0

我正在使用MySQL版本5.5.54。 RAMDisk有8Gb的内存,整个盒子有16Gb的内存,这个盒子只能运行测试套件。也许这个内存不够,但当内存不足时MySQL不应该抱怨? – ivanorone