1.应用场景
数据库成为响应瓶颈,需要做优化处理,以及当数据存储量很大时,可以采用的方案. |
2.学习/参考
1. 文档
2. 项目参考
3. 整理输出1. 分表
1.1 分表的分类纵向分表[垂直分表]将本来可以在同一个表的内容,人为划分为多个表。 (所谓的本来,是指按照关系型数据库的第三范式要求,是应该在同一个表的。) 分表理由:
案例:
其实,对于一些特殊的活跃数据,也可以考虑使用memcache ,redis 横向分表[水平分表]字面意思,就可以看出来,是把大的表结构,横向切割为同样结构的不同表。 如,用户信息表,user_1,user_2 等。 表结构是完全一样,但是,根据某些特定的规则来划分的表,如根据 用户ID 来取模划分。
案例: 同上面的例子,博客系统。当博客的量达到很大时候,就应该采取横向分割来降低每个单表的压力,来提升性能。例如博客的冷数据表,假如分为100个表,当同时有100万个用户在浏览时,如果是单表的话,会进行100万次请求,而现在分表后,就可能是每个表进行1万个数据的请求(因为,不可能绝对的平均,只是假设),这样压力就降低了很多很多。 2. 分库1.1 水平分库
1.2 垂直分库
后续补充 ... |
3.问题/补充
1. MysQL常说的分区是指另外一种粒度的数据分区方式? 还是统称分库分表为数据分区? TBD |
4.参考
分库分表的5大方案,百度、腾讯、阿里等大厂都在用!_程序员追风的博客-CSDN博客 // 分库分表的5大方案,百度、腾讯、阿里等大厂都在用! 分库分表?如何做到永不迁移数据和避免热点? // 分库分表?如何做到永不迁移数据和避免热点?--- range+hash 分库分表的方案 https://blog.csdn.net/william_n/article/details/115066198 // 2021-03-22 - 分布式存储 - 数据库主从/分库分表 - 学习/实践 |
后续补充
...