MySQL第六讲 MySQL分库分表方案
分库分表概念
分库分表就是业务系统将数据写请求分发到master节点,而读请求分发到slave 节点的一种方案,可以大大提高整个数据库集群的性能。但是要注意,分库分表的 一整套逻辑全部是由客户端自行实现的。而对于MySQL集群,数据主从同步是实现 读写分离的一个必要前提条件
垂直分片: 按照业务来对数据进行分片,又称为纵向分片。他的核心理念就是转库专用。在拆分之前,一个数据库由多个数据表组成,每个表对应不同的业务。而拆分之后,则是按照业务将表进行归类,分布到不同的数据库或表中,从而将压力分散至不同的数据库或表。例如,下图将用户表和订单表垂直分片到不同的数据库:
水平分片:又称横向分片。相对于垂直分片,它不再将数据根据业务逻辑分类,而是通过某个字段(或某几个字段),根据某种规则将数据分散至多个库或表中, 每个分片仅包含数据的一部分。例如,像下图根据主键机构分片
常用的分片策略有:1:取余\取模 : 优点 均匀存放数据,缺点 扩容非常麻烦2:按照范围分片 : 比较好扩容, 数据分布不够均匀3:按照时间分片 : 比较容易将热点数据区分出来。4:按照枚举值分片 : 例如按地区分片5:按照目标字段前缀指定进行分区:自定义业务规则分片
水平分片从理论上突破了单机数据量处理的瓶颈,并且扩展相对自由,是分库分表 的标准解决方案。一般来说,在系统设计阶段就应该根据业务耦合松紧来确定垂直分库,垂直分表方案,在数据量及访问压力不是特别大的情况,首先考虑缓存、读写分离、索引技 术等方案。若数据量极大,且持续增长,再考虑水平分库水平分表方案.
分库分表的缺点
- 事务一致性问题
- 跨节点关联查询问题
- 跨节点分页、排序函数
- 主键避重问题
- 公共表处理
- 运维工作量
什么时候需要分库分表?
常见的分库分表组件
- shardingsphere
- mycat
- DBLE
MySQL第六讲 MySQL分库分表方案相关推荐
- MySQL(十):分库分表方案
分库分表 是将数据拆分成不同的存储单元. 从分拆的角度上,可以分为垂直分片和水平分片. 垂直分片:按照业务来对数据进行分片,又称为纵向分片. 垂直分片往往需要对架构和设计进行调整.通常来讲,是来不及应 ...
- MySQL(十一):分库分表方案-ShardingSphere
Sharding-JDBC Sharding-JDBC定位为轻量级Java框架,在Java的JDBC层提供的额外服务.可理解为增强版的JDBC驱动,完全兼容JDBC和各种ORM 框架的使用 Shard ...
- 2天,我把MySQL索引、事务、分库分表、锁、性能优化撸完了!
Java研发工程师必备技能非MySQL莫属,虽说易学好上手,但应对大厂面试,最容易遭遇滑铁卢.功败垂成的也是它. 上手简单,玩转难,才是这款开源数据库叱咤业界多年的真实写照. MySQL 8.0正式版 ...
- 最全的MySQL分库分表方案总结
" 面试中我们经常会碰到的关于分库分表的问题!今天就给大家介绍互联网公司常用 MySQL 分库分表方案!希望对大家的面试有所帮助! 数据库瓶颈 不管是 IO 瓶颈,还是 CPU 瓶颈,最终都 ...
- 3天,把MySQL索引、事务、分库分表撸干净了!
前两天看到字节一个老哥写的帖子,提到高阶开发者必须掌握的技能,其中他明确提出了"精通MySQL". 为啥MySQL对开发人员如此重要? 第一,不管你去面试哪家公司,数据库是必问项, ...
- MySQL数据库的分库分表方案
MySQL数据库的分库分表方案 一. 数据库瓶颈 不管是IO瓶颈,还是CPU瓶颈,最终都会导致数据库的活跃连接数增加,进而逼近甚至达到数据库可承载活跃连接数的阈值.在业务Service来看就是,可用数 ...
- 【分库、分表】MySQL分库分表方案
一.Mysql分库分表方案 1.为什么要分表: 当一张表的数据达到几千万时,你查询一次所花的时间会变多,如果有联合查询的话,我想有可能会死在那儿了.分表的目的就在于此,减小数据库的负担,缩短查询时间. ...
- MySQL主从(MySQL proxy Lua读写分离设置,一主多从同步配置,分库分表方案)
Mysql Proxy Lua读写分离设置 一.读写分离说明 读写分离(Read/Write Splitting),基本的原理是让主数据库处理事务性增.改.删操作(INSERT.UPDATE.DELE ...
- mybatis+mysql分库分表_一种简单易懂的 MyBatis 分库分表方案
数据库分库分表除了使用中间件来代理请求分发之外,另外一种常见的方法就是在客户端层面来分库分表 -- 通过适当地包装客户端代码使得分库分表的数据库访问操作代码编写起来也很方便.本文的分库分表方案基于 M ...
最新文章
- JS 面向对象编程之原型(prototype)
- 左右声道测试音频_关于制作左右声道音频的剪辑软件推荐
- HTTP 302重定向的一个具体例子
- 深度学习修炼(三)——自动求导机制
- java并发编程之CompletableFuture
- ubuntu 12.04 配置内核崩溃自动重启及转存
- 斗罗大陆服务器维护,04.28《斗罗大陆:武魂觉醒》停服维护公告(修罗1-7服先行服)...
- 还在写 BUG?试试 GitHub 官方代码扫描工具!
- java,Hash冲突及解决办法
- mysql5.464位下载_MySQL Front 64位
- 常用分辨率、帧率、码率
- PyQT股票看板软件界面设计
- 如何测试网页的登录页面(转载)
- Android APP连接 MySQL
- Mac更新git用户名和密码
- 拒酒词、与领导喝酒的诀窍、酒量不行的技巧
- 正则系列之量词(Quantifiers)
- Ubuntu 根分区扩容方法
- 达梦数据库迁移数据报错 字符串截断
- 全网最全JavaScript正则表达式( 校验数字和字母)