最近一个项目需要数据库有较大的吞吐量,因为项目要求的访问量和数据量较大,决定采用一个数据库中间件来对数据库进行管理。经过一番查询,决定使用阿里的一个开源项目-mycat。因为mycat基于mysql,是针对磁盘的读与写,故在读写速度上理论上会小于等于mysql。为求严谨,在这之前我用java编写程序进行了测试,采用了基本的优化,如连接池测试结果如下:
engines:innodb,mysql:20线程,单条插入,速度:300-400/s
engines:innodb,mycat控制3个数据源,100个数据库,向一张表插入数据,20线程,单条插入,速度:300-400/s
(数据不稳定的原因是因为都是靠我自己掐时间用计算器算的-。-)
这个速度是不满足需求的,后来一个同事想起了曾经接触过的一个基于mysql的数据引擎-----TokuDB。网上关于TokuDB的一条说明让我怦然心动:“插入性能提升9倍”。=。=诚然我是不信的,我要自己试一下。于是我装上了tokudb引擎进行了测试(安装方法在我另一篇文章中)。如下:
engines:tokudb,mysql:20线程,单条插入,速度:600-900/s
engines:tokudb,mycat控制1个数据源,50个数据库,向一张表插入数据,20线程,单条插入,速度:600-900条/s
从我粗略的测试数据可以看到,tokudb的插入性能提升实际是没有9倍的,这个9倍我估计是峰值。但是2倍的性能提升还是很不错的。要达到客户所说的1200+,至少是看到了希望。
当然,我这个粗略的数据我是不太