NoSQL 数据库的优势
1、灵活的可扩展性
2、灵活的数据模型
- 业务场景:低延迟
- 业务场景:高吞吐量
- 不要求严格的数据库事务
- 不要求严格的读写实时性
- 不包括复杂的查询
- 会使用更多的冗余避免复杂查询
3、和云计算的紧密结合
- 可以水平扩展
- 负载少的时候退出一些机器节点,负载多可以增加机器节点
关系型数据库的退场
关系型数据库:
1、有完备的关系理论基础
2、具有事务性机制的支持
3、高效的查询优化机制
但:
1、无法满足海量数据的管理需求
2、无法满足高并发需求
- 实时根据用户请求生成数据,对数据库的负载要求比较高
3、无法满足高可扩展和高可用的需求
- 突发的负载高峰期,如热点事件
数据库集群
- 写操作在主服务器,读操作在从服务器,实现读写负载分离
- 同步/异步到从服务器,一般采用异步
- 同步:主服务器写完之后,从服务器检查数据副本一致之后才能把状态返回
- 异步:主服务器写完之后就返回状态,不论是否传播到从服务器,采用延迟传播到从服务器
MysQL 集群方式的缺陷:
1、集群部署非常复杂
2、当主库压力比较大时,就会带来比较大的延迟
3、当集群压力过大时,增加新机器,需要对整个数据集重新分区,非常复杂