传统数据库、新兴数据库、NoSQL一次选型验证数据

举报
费德勒 发表于 2017/04/14 14:37:14 2017/04/14
【摘要】 近期需要开发一个项目。需要集中向数据库写入大量数据,然后在查询分析。

近期需要开发一个项目。需要集中向数据库写入大量数据,然后在查询分析。业务特点:每条数据可能要达到8K左右。写入数据量也很大,每次要写入数万条数据。因此写入速度就成为了整个项目最关键的指标。我们通常评价数据库总是看重查询性能,关于查询性能方面的评估很多。然而对于写入速度却很少提及。所以就决定进行一次实际测试。先说说入选的几个数据库:
Sqlserver :
老牌数据库,稳定可靠。我们产品一直在使用。
Derby:
纯java数据库,亮点是和java程序的集成很完美。JRE 1.7自带Derby,在JRE 1.7上开发可以不用加任何lib
Mongo:
使用C++编写。新兴的NoSQL数据,网上评价很高。

下面开始进行测试:
测试环境:
机型:个人云,
OS:win7
SQLServer:Microsoft SQL Server 2008 (RTM) - 10.0.1600.22 (Intel X86)
Derby:Apache Derby 10.8
Mongo:2.4.6
测试方法:
同时启动3个线程,SQLServer、Derby 使用连接池通过JDBC连接,Mongo使用自己的客户端连接。循环插入同样的数据。
测试结果:
[2013-37-13 10:37:56,481]
Derby Insert 13015
SqlServer Insert 15328
Mongo Insert 60832
[2013-37-13 10:39:55,393]
可以看到,在约2分钟的时间里, Mongo 完成的插入最多,达到了60832条,分别是Derby 和 Sqlserver的4.67倍和 3.97倍。
Mongo在写入性能上完胜Sqlserver 和 Derby。
同时也发现Mongo的一个问题。 在继续插入更多数据的试验中,Mongo最终异常退出。
Fri Sep 13 10:39:55.687 [conn1] mongod.exe ???
Fri Sep 13 10:39:55.687 [conn1] mongod.exe ???
Fri Sep 13 10:39:55.687 [conn1] mongod.exe ???
Fri Sep 13 10:39:55.687 [conn1] mongod.exe ???
Fri Sep 13 10:39:55.687 [conn1] kernel32.dll BaseThreadInitThunk+0x12
Fri Sep 13 10:39:55.687 [conn1]
***aborting after fassert() failure

作者 | 杜潇泊

转载请注明出处:华为云博客 https://portal.hwclouds.com/blogs

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。