欢迎来到天天文库
浏览记录
ID:24565168
大小:53.00 KB
页数:4页
时间:2018-11-14
《反驳mysqlinnodb(不行)的性能问题,千万级别记录来测试说明》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、反驳MySQLInnoDB(不行)的性能问题,千万级别记录来测试说明>>教育资源库 在JavaEye上看到一篇对MySQLFUD(Fear,uncertaintyanddoubt)的文章 用MySQLInnoDBBenchmark性能测试来说明 文中提到:InnoDB的磁盘性能很令人担心,MySQL缺乏良好的tablespace真是天大的缺陷!网上有用户反映存在同样的插入性能问题,百万行记录插入之后,插入速度下降到了1/30,从开始的1600行/秒衰退到50行/秒 50行/秒这么慢我从来没见过,见也没人反驳,所
2、以自己再专门验证一下。 Tim's环境: MySQL5.0.26x86_64 Linuxx86_64 iddata文件大小17G,未使用innodb_file_per_table分表选项 表1:1000万行左右,表大小2.2G,含主键有6个索引字段 表2:3000万行左右,表大小6.3G,含主键有6个索引字段 MySQL还有其他一些数据也在iddata中,但测试时候其他数据未访问。 MySQLServerHarde字段类型,无text,blob类型字段。 单行长度0.1K左右 对表1测试2分
3、钟插入操作,在1千万的表中每个调用插入1行,通过JavaJDBC在另外一台测试机上调用。 服务器CPU30% JDBCResult: INSERTOK/ERR:73824/0 JavaHEAP: 7.12MBof63.56MB(11.2%)used TIMEelapse(sec):129 AVG平均/CUR当前/MAX最大Inserts/SEC:572/620/620 再测试一个3000万的表,通过JavaJDBC在另外一台测试机上调用。 可能上一个测试2分钟会让人觉得没有说服力,3000万的表二就测试
4、久一点吧。测试了10多分钟,又插入了100万条新的数据 一个调用只插入1行,8个线程。使用了连接池。 测试结果速度非常稳定。 服务器CPU30% OK/ERR:1,006,907/0 HEAP: 6.57MBof63.56MB(10.3%)used TIMEelapse(sec):1683 AVG/CUR/MAXInserts/Sec:598/586/647 测试结果是:3000万行的表再插入100万行速度持续在将近600行/秒 论坛文章中还提到看着文件尺寸100KB100KB的增长,是没法体会痛苦的
5、, 根据MySQL文档,这个增长的size可以配置的,如果数据库大量INSERT,可以把innodb文件设成每次增长100M或更大。 测试后打算回复一下,可惜JavaEye上新注册了的账号没有论坛发文的权限,只好先放在自己家了。感兴趣的朋友可以去那边讨论。 第二天补充:今天觉得文章说服力不够,因为我的测试表没有TEXT/BLOB字段,所以再测试下大字段,加了个TEXT字段,每行TEXT插入10K,整体速度比上个肯定会低一点, 但可以证明没有线性下降的问题,也可以给大家提供更多参考。 表中已有1000万行记录,
6、采用上面相同的程序。 服务器CPU持续在30%左右,测试结果见下图 测试结果每行插入10k数据,速度维持在300行/秒左右。数据库写入速度大致为:3M/S 下次有时间再试试单表1亿条记录的。我觉得速度应该还会保持。>>>>这篇文章来自..,。
此文档下载收益归作者所有