Git演示平台上的iBoxDB NoSQL与MySQL的性能测试
每隔一段时间就会出现一篇关于数据库性能描述得天花乱坠的文章,经常出现50W QPS,100W QPS这样的大数字,去掉几千字的文字讲解后,核心内容是一台顶级配置的服务器和为测试专做的配置,对于大部分系统根本不会去购买哪台不知哪里才有卖的服务器,大部分开发人员也不会去折腾哪一堆配置,并且改了默认配置往往引入新问题。怎样的数据库测试才是最真实,反映系统实际运行能力?GIT@OSC的演示平台可以作为一个参考,这里写了两段代码,测试并发10个连接,每个连接读10,000个数据在iBoxDB与MySQL上所需要的时间,时间越短,性能越好。
先看MySQL的测试代码
public Integer call() throws Exception { ResultSet rs = c.createStatement() executeQuery("select `id`, `value`, `msg` from test"); int l = 0; while (rs.next()) { if (rs.getString(3).startsWith( Integer.toString(rs.getInt(1)))){ l += rs.getInt(2); } } return l; }这段代码的内容是从test表中读出 id,value,msg, 首先对msg内容进行合法检测,内容符合的把vlaue加到校验码l中。msg的内容创建时是 "id.toString()+一段文字"。
再看iBoxDB的测试代码,因为是NoSQL,代码更易读
public Long call() throws Exception { long l = 0; for (Map<String, Object> map : c.select("from test")) { if (map.get("msg").toString().startsWith( map.get("id").toString())) { l += (Long) map.get("value"); } } return l; }启动GIT@OSC的演示平台后,点击几次测试后, MySQL都在100ms以上,而 iBoxDB 大部分在50ms附近,花费时间越小,性能越好。
在演示平台的性能测试可以反映系统实际运行效果,哪些100W QPS的测试结果在当前对99%的系统是不可能达到的。
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。