分库分表知识总结(四)

简介: 分库分表知识总结(四)

总结

一般来说,在系统设计阶段就应该根据业务耦合松紧来确定垂直分库,垂直分表方案,在数据量及访问压力不是特别大的情况,首先考虑缓存、读写分离、索引技术等方案。若数据量极大,且持续增长,再考虑水平分库水平分表方案。

垂直分表 垂直分库 水平分表 水平分库
可以把一个宽表的字段按访问频次、是否是大字段的原则拆分为多个表,这样既能使业务清晰,还能提升部分性能。拆分后,尽量从业务角度避免联查,否则性能方面将得不偿失 可以把多个表按业务耦合松紧归类,分别存放在不同的库,这些库可以分布在不同服务器,从而使访问压力被多服务器负载,大大提升性能,同时能提高整体架构的业务清晰度,不同的业务库可根据自身情况定制优化方案。但是它需要解决跨库带来的所有复杂问题 可以把一个表的数据(按数据行)分到多个同一个数据库的多张表中,每个表只有这个表的部分数据,这样做能小幅提升性能,它仅仅作为水平分库的一个补充优化 可以把一个表的数据(按数据行)分到多个不同的库,每个库只有这个表的部分数据,这些库可以分布在不同服务器,从而使访问压力被多服务器负载,大大提升性能。它不仅需要解决跨库带来的所有复杂问题,还要解决数据路由的问题


具体实现方案

mycat

基于 Proxy,它复写了 MySQL 协议,将 Mycat Server 伪装成一个 MySQL 数据库

风评较差、官网确实有些随意、就先不看了

sharding-jdbc

基于 JDBC 接口的扩展,是以 jar 包的形式提供轻量级服务的,无需额外的proxy

走Apache了,文档比较讲究

目录
相关文章
|
4月前
|
SQL 存储 数据库连接
什么是分库分表,为什么要分库分表?
笔者经常将缓存、分库分表、消息队列定义为高并发三剑客。开发互联网应用系统时,分库分表是一个绕不开的技术点。 这篇文章,我们会探讨如下问题:
|
8月前
|
Java 中间件 数据库连接
分库分表的4种方案
分库分表的4种方案
236 0
|
12天前
|
存储 算法 数据库连接
为什么要分库分表
为什么要分库分表
为什么要分库分表
|
12天前
|
缓存 监控 Java
分库分表带来的问题
分库分表带来的问题
|
7月前
|
SQL 缓存 关系型数据库
什么情况下需要考虑分库分表?
什么情况下需要考虑分库分表?
101 0
|
10月前
|
存储 负载均衡 Oracle
分库分表介绍
分库分表是一种用于解决大规模数据存储和查询性能问题的数据库架构设计技术。它将一个数据库拆分成多个独立的数据库实例(分库),并将每个数据库实例的表进一步拆分成多个子表(分表)。这样可以提高数据库的并发处理能力和查询性能。
190 0
|
存储 SQL 关系型数据库
分库分表是什么
分库分表是什么
88 0
分库分表是什么
|
存储 算法 数据库连接
为什么要分库分表呢?
《分布式》系列
133 0
为什么要分库分表呢?
|
SQL 算法 数据可视化
ShardingSphere 分库分表(2)-单表分表解决方案
老表 id 根据情况迁移到新表后可以用原始 id 值,也可以重新生成新的 id。如果你的业务并没有用老表 id 作任何业务操作只是一个主键标识,那么无所谓改不改,如果为了统一也可以重新用算法生成新的 id。而如果老表 id 本身有参与业务,比如你的 SQL 里面有利用这个字段关联表,那么就不要动了,因为成本非常高,改的东西很多,个人认为没有必要。
ShardingSphere 分库分表(2)-单表分表解决方案