声明:今天参加了毕业班的学生技术研讨会,真心感觉学生们成长速度还是挺惊人的,以前总是说“你们是我带过的最差的一届学生”,哈哈,其实不是的,今天深入即将毕业的班级参加了一场技术研讨会,有感而发学生们的研究成果。代码比较糙,仅供大家参考,至少思路可以借鉴。
分库思路
- 单库单表
单库单表是最常见的数据库设计,例如,有一张用户(user)表房子啊数据库db中,所有的用户都是可以在db库中的user表中查到。 - 单库多表
随着用户数量的增加,user表的数据量会越来越大,当数据量达到一定程度的时候对user表的查询会渐渐的变慢,从而影响整个DB的性能。可以通过某种方式将user进行水平的切分,产生两个表结构完全一样的user_0000,user-0001等表,user_0000 + user-0001 + …的数据刚好是一份完整的数据。 - 多库多表
随着数据量增加也许单台DB的存储空间不够,随着查询量的增加单台数据库服务器已经没办法支撑。这个时候可以再对数据库进行水平区分。
分库原理图:
mysql 分布式之分库(增)
注意:操作完一个数据库一定要把数据库连接关闭,不然 mysql 会以为一直连接的同一个数据库
还是取模确定加载哪个配置文件连接哪个数据库
mysql 分布式之分库(改)
原理类似于新增