欢迎光临成都无标度网络科技有限公司!



蝙蝠在线考试系统Derby、MySQL、Oracle数据库性能测评

2015-10-21 18:56    编辑:蝙蝠    阅读: 13360
公司近期对《蝙蝠在线考试系统》使用的几种典型数据库进行了简单性能测试。本文总结了测试过程及结论,以供各位用户选择数据库时参考。
 
数据库方案及优缺点:
  1. Derby(Embed): 纯Java数据库,可与Java应用无缝集成,但可用第三方GUI工具较少;
  2. MySQL5.6: 在php等小型系统中应用广泛,可用工具多,性能一般;
  3. Oracle11.2g: 大型数据库,商业领域应用多,性能突出,对硬件要求高,资源开支较大。
 
以上三种数据库的生产商分别是Apache自由软件基金会、Oracle,都久经大规模使用测试,BUG极少,高度可靠。
 
测试方法介绍:
  1. 首先把单选题表中的所有数据取出(不统计此时间)
  2. 按照步骤1中各条数据ID重新循环从数据库中读出单条数据;
  3. 将步骤2循环N次;
  4. 统计读取时间;
  5. 按照步骤1中各条数据循环进行单条数据修改;
  6. 将步骤5循环N次;
  7. 统计写入时间。
 
在上测试方法在三种数据中分别进行,测试结果如下:
 
表 1. 三种数据库读写时间对比
  Derby10 (Embed) MySQL5.6 Oracle11.2g
表引擎   InnoDB  
数据量 361 380 401
循环次数 5 5 5
       
读时间 0.372 s 3.654 s 3.016 s
写时间 1.166 s 8.466 s 7.399 s
 
 
结论:当使用Derby作为考试系统内部嵌入型数据库时,由于是进程内通信,其性能表现优异,大幅超越MySQL与Oracle.
 
数据库选用方案推荐:
  1. 当考试用户不是太多,例如总量小于1000人时,推荐使用Derby,由于本系统使用了Derby的嵌入模式,对数据库的读写属于进程内通信,不涉及数据库网络连接,速度极快(绿色免安装版本使用的即为Derby);
  2. 当考试人数多到一台服务器不能承受,并且需要WEB服务器和数据库分开部署时,推荐使用ORACLE;
  3. 如果考试系统中数据确实需要和其它php类小型系统配合使用,或者其它原因必须使用MySQL,请使用MySQL。
 
 
注:本文测试程序已经附带到了考试系统的tools目录下,文件名为:db_performance.jsp,各位用户可以直接输入网址 考试系统/tools/db_performance.jsp 自行测试。