MongoDB
Basic
MongoDB 应用场景
mongodb 支持副本集、索引、自动分片,可以保证较高的性能和可用性。 更高的写入负载默认情况下,MongoDB 更侧重高数据写入性能,而非事务安全,MongoDB 很适合业务系统中有大量 “低价值” 数据的场景。 但是应当避免在高事务安全性的系统中使用 MongoDB,除非能从架构设计上保证事务安全。 高可用性MongoDB 的复副集 (Master-Slave) 配置非常简洁方便,此外,MongoDB 可以快速响应的处理单节点故障,自动、安全的完成故障转移。这些特性使得 MongoDB 能在一个相对不稳定(如云主机)的环境中,保持高可用性。 数据量很大或者未来会变得很大依赖数据库 (MySQL) 自身的特性,完成数据的扩展是较困难的事,在 MySQL 中,当一个单达表到 5-10GB 时会出现明显的性能降级,此时需要通过数据的水平和垂直拆分、库的拆分完成扩展,使用 MySQL 通常需要借助驱动层或代理层完成这类需求。而 MongoDB 内建了多种数据分片的特性,可以很好的适应大数据量的需求。 基于位置的数据查询MongoDB 支持二维空间索引,因此可以快速及精确的从指定位置获取数据。 表结构不明确在一些传统 RDBMS 中,增加一个字段会锁住整个数据库 / 表,或者在执行一个重负载的请求时会明显造成其它请求的性能降级。 通常发生在数据表大于 1G 的时候(当大于 1TB 时更甚)。因 MongoDB 是文档型数据库,为非结构货的文档增加一个新字段是很快速的操作,并且不会影响到已有数据。另外一个好处当业务数据发生变化时,是将不在需要由 DBA 修改表结构。