📄️ 什么是分库分表?
当 MySQL 作为数据库为系统提供数据存储时,随着表数据越来越大,会衍生出一系列问题,其中包括性能瓶颈、存储限制、难以水平扩展、维护难度、查询性能下降以及数据安全等方面。这些问题在大规模应用和高并发环境下尤为显著。为了应对这些挑战,采用分库分表的数据库架构成为一种有效的解决方案。
📄️ 什么情况下分库?分表?分库分表?
当出现以下三种情况的时候,我们需要考虑分表,单个表的数据量过大。数据量一般但是其中单个字段文本过大,比如包含了 Text 或者 LongText 字段。数据库表对应的磁盘文件过大。
📄️ 分库分表都有哪些框架?
分库分表常用的框架有两个,MyCat 以及 Apache ShardingSphere 生态框架。从使用角度上来说,分为 JDBC 驱动增强和数据库代理。
📄️ 如何选择分库分表框架?
选择 MyCat 还是 ShardingSphere 取决于项目的具体需求、架构设计、团队技术栈和个人偏好。
📄️ 分库分表有哪些常用算法?
常见分库分表手段包括哈希取模、行表达式、范围分片与自定义类等……
📄️ 什么是复合分片算法?
复合分片算法指的就是,用于处理使用多键作为分片键进行分片的场景。适用于多维度的分片需求,可以更灵活地满足业务场景的复杂性。
📄️ 什么是分库分表基因法?
基因法是将一个分片键的信息,获取出来一个分片基因,并将该基因融入到另一个分片键的组成部分中。这样,通过组合基因生成的分片键信息,就可以代表两种分片维度,常用于复合分片算法。