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