mysql_solr测试对比课案.doc
文本预览下载声明
1?概述
1.1?目的
本测试报告。
。
1.3?范围
本次测试主要是。
下图描述测试该项目所需要的硬件环境:
Intel(R)?Xeon(R)?CUP? 3.70GHz?八核至强处理器、内存:8GB?RAM? 数据库服务器 Intel(R)?Xeon()?CUP? 3.70GHz?八核至强处理器、内存:8GB?RAM? ?
3?测试内容及方法
3.1?测试需求/目标
测试在千万级数据量的情况下,数据库和solr的查询性能。
3.2?测试内容
存储索引千万级数据到mysql和solr中。
3.3?测试工具
主要测试工具为:
辅助软件:截图工具,Word
?
?
4.1?mysql和solr查询性能测试
?
这次测试属于局域网环境进行,排除了外网的网速限制及不稳定性。
测试内容:
有5个主键。
建立solr字段,这里用到了动态字段,把表中的字段名,每个都加上_ws变成solr的字段,分词类型为空格分词。
提交数据到mysql和solr
数据库中原本已经有了600万条数据,所以需要添加400万条数据。数据由java程序随机生成,然后通过jdbc提交到数据库中。
Solr中原本没有数据,需要把数据库中的数据通过jdbc查询出来,然后提交到solr索引。
数据库上传数据是生成一条数据上传一条数据,平均大概每秒上传300条数据。Solr支持批量上传,从数据库中每次查询10000条,然后打包一起上传到solr。查询数据库加上solr索引时间,平均大概每秒2000条
查询时间对比
对比在600万,800万,1000万数据的情况下,mysql和solr查询时间的对比。由于solr拥有缓存机制,每次查询后会缓存相应查询,所以第二次查询会快很多。
单条件查询如下:
mysql查询语句为:SELECT * FROM a921_his WHERE MATNR=IJX66WRN
Solr查询语句为MATNR_ws:IJX66WRN
每次查询10次取平均值,由于solr会有缓存,查询是需要清除缓存。
结果对比表1
600W 800W 1000W mysql 3.9s 4.5s 6.9s solr 0.002s 0.003s 0.003s Solr缓存后 0.001s 0.001s 0.001s
结果对比图1
查询截图:
千万数据量时mysql查询截图
Mysql查询截图1
Solr查询截图:
Solr查询截图1
多条件查询如下:
mysql查询语句为:SELECT * FROM a921_his WHERE DATAB2010-01-18 AND DATAB2010-01-20 AND MATNR=MIE34LRA
Solr查询语句为DATAB_ws:[2010-01-18 TO 2010-01-20] AND MATNR_ws:MIE34LRA
每次查询10次取平均值,由于solr会有缓存,查询是需要清除缓存。
结果对比表2
600W 800W 1000W mysql 4.5s 5.8s 8.1s solr 0.008s 0.008s 0.009s Solr缓存后 0.003s 0.004s 0.004s
结果对比图2
mysql查询截图:
Mysql查询截图2
Solr截图:
Solr查询截图2
分页查询:
mysql查询语句为:SELECT * FROM a921_his WHERE DATAB2010-01-18 AND DATAB2010-01-20 limit 100000,10
Solr查询语句为DATAB_ws:[2010-01-18 TO 2010-01-20]
start,?rows为100000,10。
每次查询10次取平均值,由于solr会有缓存,查询是需要清除缓存。
结果对比表3
600W 800W 1000W mysql 2.1s 3.5s 5.8s solr 0.066s 0.07s 0.076s Solr缓存后 0.065s 0.065s 0.071s
结果对比图3
Mysql查询截图:
Mysql查询截图3
Solr查询截图:
Solr查询截图3
结果分析:
?
Solr在600W以上数据的单表查询中,效率上明显高于mysql。Mysql查询效率在600w,800w,1000w时,呈现的是大于线性增长。Solr在600W,800W,1000W数据时,查询效率并没有什么明显改变。由于solr采用http的方式传送数据。可能查询结果过大时,传输会比较慢。
显示全部