PI-KA-CHU / PIKACHU-JAVA-Notebook

用于记录学习笔记
8 stars 4 forks source link

MySQL分表分库学习 #62

Open PI-KA-CHU opened 5 years ago

PI-KA-CHU commented 5 years ago

MySQL分表分库学习



为什么要进行数据切分:

随着互联网应用的广泛普及,海量数据的存储和访问成为了系统设计的瓶颈问题。对于一个大型的互联网应用,每天几十亿的PV无疑对数据库造成了相当高的负载。对于系统的稳定性扩展性造成了极大的问题。通过数据切分来提高网站性能,横向扩展数据层已经成为架构研发人员首选的方式。


数据库优化的策略

水平切分数据库,可以降低单台机器的负载,同时最大限度的降低了了宕机造成的损失。通过负载均衡策略,有效的降低了单台机器的访问负载,降低了宕机的可能性;通过集群方案,解决了数据库宕机带来的单点数据库不能访问的问题;通过读写分离策略更是最大限度了提高了应用中读取(Read)数据的速度和并发量。


MySQL分库分表方案

利用merge存储引擎来实现分表(水平分表)


简单的MySQL主从复制:



MySQL垂直分区


MySQL水平分片(sharding)





对冷热数据的处理


参考