通过集群扩展
- MySQL Cluster(NDB Cluster)
一个键-值数据库服务器,高写入高查询吞吐,容错性好,分布式,但复杂查询支持不太好
- Clustrix
一个分布式数据库,支持MySQL协议,可以直接替代MySQL;查询分发,节点并发执行;扩展节点方便;
- ScaleBase
查询分裂,并发执行,汇总结果集
- GenieDB
- Akiban
向内扩展
最简单的方法:对不需要的数据定时归档或者清理;pt-archiver
负载均衡
- 直接连接
需要应用来决定读取主库还是备库;
- 基于查询分离
不允许读取脏数据的查询,直接查主库,允许的查备库
- 基于脏数据的分离
像报表这类的数据,只需要晚上同步到备库即可,直接读备库
- 基于会话的分离
同一个会话,先修改了数据,然后有查询,那在这个会话里读写操作都在主库上
- 引入中间件
HAProxy、LVS
- 负载均衡算法
随机、轮询、最少连接数、最快响应、哈希、权重
总结
实现应用明确需要的,并为可能的快速增长做好预先规划,成功的规划是可以为任何必要的措施筹集资金以满足需求
典型的应用在增长到非常庞大时,通常先从单个服务器转移到向外扩展的主备(读写分离),再到分片和按功能分区!
网友评论