David的测试技术空间,收藏好文档和分享我的技术理解。5年的数通产品测试和安全产品测试经验,3年Web产品测试和多年测试管理和测试工具开发经验。目前关注性能分析调优、Jmeter和TestNG+WebDriver+Hamcrest的培训推广。Welcome沟通交流,请留言或者发邮件到daviwang_2004 at soguo.com。

SQL数据库与Lucene数据库性能测试报告

上一篇 / 下一篇  2008-02-26 12:23:53 / 个人分类:旧资料

http://www.cnitblog.com/cockerel/archive/2007/07/30/30911.html

SQL数据库与Lucene数据库性能测试报告[原] by 踏雪赤兔

SQL数据库与Lucene数据库性能测试报告

一、       测试目的

本测试试图对用相同数据制作的SQL数据库与Lucene数据库对语义相同的查询语句的性能作一个简单的比较与分析,以找出各自的优缺点,并讨论其各自的适用场合。

 

二、       测试环境

       CPUAMD Atholon64 3200+2.0G

      内存:896MB

       OSWindows 2003

       Jre版本:1.6.0_01

       Jdk版本:1.5.0_06

       Lucene版本:2.2.0

       JDBC版本:Microsoft SQL Server 2005JDBC Driver 1.2

 

三、       测试数据设计

本次测试采用的数据来自校讯通的真实运营数据,原始数据是SQL数据库的一张数据表,该表共有33个字段,各字段名称及类型描述如下:

 

其中,本测试选取了IDsenderNamemsgBodymsgTo四列来测试。ID代表了已做索引的int型字段;senderName代表varchar型的短文本字段;msgBody代表nvarchar型长文本字段;msgTo代表保存为varchar型的数值字段。

原始数据共有5623689组,占用约2GB的硬盘空间。在本测试中,分别选取其中前100万组数据和前491万组数据来参与测试。相同数据量的Lucene索引使用自写的RDB2Lucene Java包生成。对所有的列都进行了索引化和词元化。

设计测试数据时,考虑到以下几个方面的对比:

ü        不同字段的查询的对比;

ü        不同结果集规模的对比;

ü        不同查询数据规模的对比;

ü        同一项测试连续进行多次的前后效率对比

 

具体测试数据及测试结果见以下两个统计表:

100万组数据测试统计表:

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   
 

 

 
 

 

 
 

SQL

 
 

Lucene

 
 

 

 
 

用例

 
 

搜索字段

 
 

搜索词

 
 

结果集

 
 

用时

 
 

搜索词

 
 

结果集

 
 

用时

 
 

结果集

 
 

1

 
 

ID

 
 

%1%

 
 

491542

 
 

10906

 
 

 

 
 

 

 
 

 

 
 

不同

 
 

2

 
 

ID

 
 

1%

 
 

153660

 
 

1250

 
 

1*

 
 

153660

 
 

24502

 
 

相同

 
 

3

 
 

ID

 
 

1234

 
 

1

 
 

1453

 
 

1234

 
 

1

 
 

2047

 
 

相同

 
 

4

 
 

ID

 
 

2%

 
 

110981

 
 

1109

 
 

2*

 
 

110981

 
 

16845

 
 

相同

 
 

5

 
 

ID

 
 

3%

 
 

108023

 
 

1094

 
 

3*

 
 

108023

 
 

3672

 
 

相同

 
 

6

 
 

ID

 
 

111_

 
 

10

 
 

1437

 
 

111?

 
 

10

 
 

63

 
 

相同

 
 

7

 
 

ID

 
 

1%2%

 
 

66133

 
 

1578

 
 

1*2*

 
 

66133

 
 

1907

 
 

相同

 
 

8

 
 

ID

 
 

7%8%

 
 

44493

 
 

1531

 
 

7*8*

 
 

44493

 
 

2750

 
 

相同

 
 

9

 
 

ID

 
 

4_5_

 
 

100

 
 

1406

 
 

4?5?

 
 

100

 
 

735

 
 

相同

 
 

10

 
 

senderName

 
 

%

 
 

4753

 
 

1235

 
 

 

 
 

 

 
 

 

 
 

不同

 
 

11

 
 

senderName

 
 

%%

 
 

9124

 
 

1141

 
 

 
 

9124

 
 

281

 
 

相同

 
 

12

 
 

senderName

 
 

%林雨%

 
 

6

 
 

1141

 
 

林雨

 
 

6

 
 

78

 
 

相同

 
 

13

 
 

senderName

 
 

%家长%'

 
 

103

 
 

1141

 
 

家长

 
 

103

 
 

32

 
 

相同

 
 

14

 
 

msgBody

 
 

%%'

 
 

17579

 
 

14767

 
 

 
 

17579

 
 

219

 
 

相同

 
 

15

 
 

msgBody

 
 

%林雨%

 
 

46

 
 

14595

 
 

林雨

 
 

46

 
 

78

 
 

相同

 
 

16

 
 

msgBody

 
 

%家长%

 
 

532790

 
 

10798

 
 

家长

 
 

532790

 
 

3406

 
 

相同

 
 

17

 
 

msgBody

 
 

%家长%

 
 

532790

 
 

10501

 
 

家长

 
 

532790

 
 

375

 
 

相同

 
 

18

 
 

msgBody

 
 

'%小学%

 
 

61657

 
 

14861

 
 

小学

 
 

61679

 
 

890

 
 

不同

 
 

19

 
 

msgBody

 
 

%%

 
 

132968

 
 

14439

 
 

*

 
 

132968

 
 

32

 
 

相同

 
 

20

 
 

msgBody

 
 

%%

 
 

3666

 
 

1359

 
 

**

 
 

0

 
 

16

 
 

不同

 
 

21

 
 

msgBody

 
 

%你的孩子已于

TAG: 与目前工作有关的杂项

 

评分:0

我来说两句