爬虫用mysql存储还是mongodb_对爬虫抓取的数据进行分析该用MySQL还是mogodb?

纠正一下拼写,应该是MongoDB。

每种数据库都有其自己的优势和不足,适用的场合也不一样。既然我是站在MongoDB这边的,上面也有人提到了MySQL和HDFS,我就分析一下MongoDB比MySQL和HDFS在数据分析上的优势。题主不妨看看这些优势是不是你想要的,再根据自己项目的实际情况做决定。

MySQL是老牌的RDBMS,具备RDBMS的常见特性,对ACID有完善的支持。其技术经过长时间的沉淀和应用考验,已经在一个比较稳定应用的阶段。RDBMS在实际应用中的对NoSQL的主要优势就是强事务。但一个OLAP的应用上,强事务没有太多用武之地,却阻碍了分布式支持。在充分发展的前提下,最终水平扩展会成为你选择MySQL的主要瓶颈。另外对于爬虫这样的应用,爬取的通常都是非结构化数据,这在关系模型的存储和查询上面都有很大的局限性。但也有一个可能性是你感兴趣的网站都是同样类型的网站,你只对网页上的特定内容有兴趣,这样可以把它们组织成结构化数据,从而在这方面MySQL仍然是可以胜任的。但就算这样,随着应用的发展将来在数据存储的灵活性上仍然会有所牺牲。所以对爬虫这样的应用,MySQL的主要问题是数据模型不够灵活和无法(或者说比较难)水平扩展。

就上面主要的两个问题而言,HDFS其实都可以胜任。所以HDFS在爬虫这样的应用上面较MySQL是有优势的。同样MongoDB也很好地解决了这两个问题。那么MongoDB对比HDFS的优势在什么地方?很重要的一点来自于MongoDB可以像关系型数据库一样对文档中的任何一个字段建立二级索引,从而在分析过程中可能尽可能大地利用索引带来的性能优势。另外,HDFS提供的更像一个文件系统,而MongoDB提供的则是一个灵活的数据库技术,在MongoDB上可以轻易地实现地理位置分布,过期文档归档等操作。

从生态系统上,HDFS的周边工具肯定要丰富一些,毕竟发展历史放在那里。而MongoDB目前主要支持的则有:

BI Connector:MongoDB对外提供PostgreSQL或MySQL接口以利用已有的BI工具

Spark Connector:MongoDB与Spark对接进行计算

回到你的问题,效率上面平心而论百万到千万级别不算大,无论使用哪个数据库,在正确使用的前提下性能差异不会有质上的区别。可用性问题上MongoDB的高可用可以达到秒级的错误恢复。MySQL也有相应的方案,只是运维上可能要复杂一些。安全性上面各家没有太大的差别。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值