2012-07-12 83 views
0

基本信息: 我的Mysql数据库正在使用TokuDB,InnoDB,MyIsam表。有关提高Mysql并发插入和读取数据性能的问题

服务器信息: 16核心,64GB的RAM,CentOS的6.2,MySQL的v 5.5

过程:从一个文本文件到一个TokuDB表 1.导入大量的数据。 2.通过加入不同的表格来选择数据。

当进程1和2同时运行时,整个运行速度会慢很多。

有谁知道具体原因?

任何建议,以改善它?

+0

可能击中两个不同的地方盘... – 2012-07-12 16:45:32

+0

我同意INFILE工作快得多。不管HDD的速度和“低”延迟,在双重过程中,它都会不断需要在磁盘的一部分与另一部分之间切换读取。如果导入和加入选择的过程发生很多,则可能需要考虑为SQL服务器添加专用SSD驱动器。由于没有磁盘和读写头,延迟几乎为零。 – 2012-07-12 16:49:47

+0

您可以针对您的实验提供更多细节吗?了解你的模式,你如何加载数据,你选择的查询是什么样的,等等。 – tmcallaghan 2012-07-19 17:12:19

回答

0

将IO分隔到不同的磁盘/阵列。在单个分区/阵列上拥有所有IO会导致可怕的性能。如果可能的话,投资于IBM DS3524或HP Smart Array等专用驱动器阵列。通过光纤通道(或更好的SAS2)连接数据库服务器将会带来令人难以置信的性能提升。几年前,我停止将大量磁盘放入服务器中。在驱动器阵列上,MySQL的性能比服务器上的磁盘高5倍。

在tokudb
0

,负载数据导入就当空表(特别是当你有非增量primarey键或唯一索引)