目录:
一、传统开发数据读写性能优化
[1. Mysql 分表、主从复制与读写分离](#1. Mysql 分表、主从复制与读写分离)
[2. Redis(缓存型数据库)主从复制与读写分离](#2. Redis(缓存型数据库)主从复制与读写分离)
二、HBase
一、传统开发数据读写性能优化
1、Mysql 分表、主从复制与读写分离
-
一种分表方案:设置表A 表B
- 表A 自增列从1开始 步长2
- 表B 自增列从2开始 步长2
- 配置文件my.ini(window) 主键为奇数进表A 偶数进表B
-
通过Mycat
- 增删改:写 => 主表 强一致性:InnoDB
- 查询:读 => 从表 弱一致性:MyIsam
- 主从表之间 => 通过二进制日志binlog实现主从表的数据同步
具体主从复制的工作过程请参考:MySQL主从复制与读写分离(附配置实例)
2、Redis(缓存型数据库)主从复制与读写分离
缓存数据库:哨兵【主从复制】,集群
后端查询都从Redis走
【定期】将关系型数据库数据【同步】到Redis:实时性(一致性)
具体过程参考:Redis主从复制、哨兵、Cluster三种模式摸透
主从复制存在一定的数据延迟,大数据不强调一致性,只需最终一致性
二、HBase
Redis 集群 + 哨兵的主从复制解决数据的分布式存储但也只是解决了读的问题,写还是面向数据库,写的慢主从复制同步的慢读的数据有问题或写的太频繁数据库崩了,对于写的数据慢可以采用批处理的方式
多主多从都解决不了问题就可以考虑使用HBase
Hbase 本身就是集群 主要优点之一:吞(写)吐(读)量大