MongoDB的应用场景及nosql数据库与mysql对比

1、MongoDB的应用场景

1)、表结构不明确且数据不断变大

MongoDB是非结构化文档数据库,扩展字段很容易且不会影响原有数据。内容管理或者博客平台等,例如圈子系统,存储用户评论之类的。

2)、更高的写入负载

MongoDB侧重高数据写入的性能,而非事务安全,适合业务系统中有大量“低价值”数据的场景。本身存的就是json格式数据。例如做日志系统。

3)、数据量很大或者将来会变得很大

Mysql单表数据量达到5-10G时会出现明细的性能降级,需要做数据的水平和垂直拆分、库的拆分完成扩展,MongoDB内建了sharding、很多数据分片的特性,容易水平扩展,比较好的适应大数据量增长的需求。

4)、高可用性

自带高可用,自动主从切换(副本集)

不适用的场景

1)、MongoDB不支持事务操作,需要用到事务的应用建议不用MongoDB。

2)、MongoDB目前不支持join操作,需要复杂查询的应用也不建议使用MongoDB。

2、关系型数据库和非关系型数据库的应用场景对比

关系型数据库适合存储结构化数据,如用户的帐号、地址:

  1)这些数据通常需要做结构化查询,比如join,这时候,关系型数据库就要胜出一筹

  2)这些数据的规模、增长的速度通常是可以预期的

  3)事务性、一致性

NoSQL适合存储非结构化数据,如文章、评论:

  1)这些数据通常用于模糊处理,如全文搜索、机器学习

  2)这些数据是海量的,而且增长的速度是难以预期的,

  3)根据数据的特点,NoSQL数据库通常具有无限(至少接近)伸缩性

  4)按key获取数据效率很高,但是对join或其他结构化查询的支持就比较差

发表评论

电子邮件地址不会被公开。

This site uses Akismet to reduce spam. Learn how your comment data is processed.