您的当前位置:首页正文

Mysql、MongoDB对比和使用场景

2024-08-29 来源:汇智旅游网
Mysql、MongoDB对⽐和使⽤场景

MongoDB:

更⾼的写⼊负载

默认情况下,MongoDB更侧重⾼数据写⼊性能,⽽⾮事务安全,MongoDB很适合业务系统中有⼤量“低价值”数据的场景。但是应当避免在⾼事务安全性的系统中使⽤MongoDB,除⾮能从架构设计上保证事务安全。⾼可⽤性

MongoDB的复副集(Master-Slave)配置⾮常简洁⽅便,此外,MongoDB可以快速响应的处理单节点故障,⾃动、安全的完成故障转移。这些特性使得MongoDB能在⼀个相对不稳定(如云主机)的环境中,保持⾼可⽤性。数据量很⼤或者未来会变得很⼤

依赖数据库(MySQL)⾃⾝的特性,完成数据的扩展是较困难的事,在MySQL中,当⼀个单达表到5-10GB时会出现明显的性能降级,此时需要通过数据的⽔平和垂直拆分、库的拆分完成扩展,使⽤MySQL通常需要借助驱动层或代理层完成这类需求。⽽MongoDB内建了多种数据分⽚的特性,可以很好的适应⼤数据量的需求。基于位置的数据查询

MongoDB⽀持⼆维空间索引,因此可以快速及精确的从指定位置获取数据。表结构不明确,且数据在不断变⼤

在⼀些传统RDBMS中,增加⼀个字段会锁住整个数据库/表,或者在执⾏⼀个重负载的请求时会明显造成其它请求的性能降级。通常发⽣在数据表⼤于1G的时候(当⼤于1TB时更甚)。 因MongoDB是⽂档型数据库,为⾮结构货的⽂档增加⼀个新字段是很快速的操作,并且不会影响到已有数据。另外⼀个好处当业务数据发⽣变化时,是将不在需要由DBA修改表结构。

Mysql:

1)这些数据通常需要做结构化查询,⽐如join,这时候,关系型数据库就要胜出⼀筹 2)这些数据的规模、增长的速度通常是可以预期的 3)事务性、⼀致性4)丰富的锁机制

5)关系型数据库,表的结构是固定,表的字段类型也是固定,必须要⽤DDL语句才能去修改,这时会锁表

因篇幅问题不能全部显示,请点此查看更多更全内容