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%的系统是不可能达到的。

GIT@OSC的测试代码地址在线演示地址

iBoxDB NoSQL数据库下载地址


郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。