mysql垂直分库_mysql垂直分库,水平分库,垂直分表,水平分表
之前经常被问道这些分库分表的概念,只是大概知道,但是具体如何定义的,问什么这么定义还是不太理解,今天对着数据表中的数据沉思的时候,突然间醒悟,原来这些概念非常好理解,而且可以说水平和垂直这两个词用得恰到好处,非常形象地帮助我们理解它们。
水平分表
顾名思义,水平分表就是把表中的数据进行了水平切割,意味着按照行进行切割,也就是说不同行的数据被切割后可能在不同的表中。
如图所示,根据水平切割之后,id为1和2的数据行会在一个表中,id为3,4的数据行会在一个表中,而id为5的数据会在一个表中,这就是水平分表。
垂直分表
也是一样,它的意思是把数据表进行了垂直分割,原来表中的列被分到了不同的表中。
如图所示,desc字段被切割后,会分配到另一张表中。 那么为什么要垂直分表,或者说什么情况下适合垂直分表? 答案就是垂直分表的目的就是将表中的含有大量数据的字段,比如text字段,blob字段从表中分离出去,这样可以大大减轻原表的数据压力,而且这些字段的访问量没有其它字段的访问频率高,所以这么处理是合适的。
水平分库
如果你理解了上面的水平分表和垂直分表,那么数据库的分割你也会很好理解。 顾名思义,水平分库相当于把数据库水平切割,原来一个表中的数据可能会分配到不同的数据库中,这就是水平分库。
如图所示,table1,table2,table3,table4中的数据都会被水平切割一刀,这样一个表中的数据可能就会被分配到不同的数据库中。
垂直分库
垂直分库,就是将数据库垂直分割,这回一个表中的数据不会被分配到不同数据库,但是不同表可能会分配到不同的数据库。
如图所示,经过垂直分割table1,table2会分到一个数据库db1,而table3,table4会分配到另一个数据库db2。
什么时候垂直分库呢?答案是根据业务逻辑进行分割。比如我们可以把用户表和用户相关的表分配到用户数据库中,而把商品表和商品相关的数据分配到商品数据库中。
总结
总之,无论是何种分割,我们的目的都是为了减少数据库的压力,然后尽可能减少查询带来的复杂性,只要掌握这两个核心,其实概念都是次要的,原理才是重要的。
mysql垂直分库_mysql垂直分库,水平分库,垂直分表,水平分表相关推荐
- 彻底搞清分库分表(垂直分库,垂直分表,水平分库,水平分表)
分库分表是什么 下边以电商系统中的例子来说明,下图是电商系统卖家模块的表结构: 通过以下SQL能够获取到商品相关的店铺信息.地理区域信息: SELECT p.*,r.[地理区域名称],s.[店铺名称] ...
- mycat的主从关系 垂直分库 水平分表 以及mycat分片联表查询的配置详解(mysql5.7系列)
主从关系 准备三台不同ip的虚拟机 (第一批)主从关系的配置 主192.168.47.131 配置/etc/my.cnf,在[mysqld]下配置 log-error=/var/log/mysqld. ...
- 数据库--分库分表--垂直分表与水平分表
原文网址:数据库--分库分表--垂直分表与水平分表_IT利刃出鞘的博客-CSDN博客 简介 说明 本文介绍数据库的分库分表的方案:垂直分表与水平分表. 关系型数据库本身比较容易成为系统瓶颈,单机存储容 ...
- 水平分表、分库和垂直分表、分库和公共表的代码实现和讲解
文章目录 一.教学讲解视频 二.环境准备 三.水平分表 1.概念 2.代码 四.水平分库 1.概念 2.代码 五.垂直分表 1.概念 2.代码 六.垂直分库 1.概念 2.代码 七.公共表 1.概念 ...
- Sharding-Sphere,Sharding-JDBC_分库分表(水平分库_水平分表)_Sharding-Sphere,Sharding-JDBC分布式_分库分表工作笔记004
然后我们前面说了垂直分库,分表,我们要了解什么是垂直分库分表 1.垂直分表,就是比如,我们有个课程的表,但是我们数据量太大的话,我们把这个课程表,可以分成 课程基本信息表,课程描述表,这两个表,这样的 ...
- 使用sharding-jdbc实现水平分库+水平分表
前面的文章使用sharding-jdbc实现水平分表中详细记录了如何使用sharding-jdbc实现水平分表,即根据相应的策略,将一部分数据存入到表1中,一部分数据存入到表2中,逻辑上为同一张表,分 ...
- mysql 垂直分表 设计_水平分表和垂直分表
一.数据库瓶颈 不管是IO瓶颈,还是CPU瓶颈,最终都会导致数据库的活跃连接数增加,进而逼近甚至达到数据库可承载活跃连接数的阈值.在业务Service来看就是,可用数据库连接少甚至无连接可用.接下来就 ...
- Mysql 数据库水平分表 存储过程
数据库存储量达到一定程度的时候,就需要进行分表以减轻检索的消耗. 常用的分表方式包括水平和垂直分表.本次进行的是按照uid进行水平分表. ##分表思路: 水平分表平均的将数据按照特定方式分配到多个表中 ...
- MYSQL实现水平分表
mysql水平分表 本人主要以Navicat实现,具体想要高端点,可以用Sharing JDBC.Mycat去实现 水平分表 mysql水平分表 分库分表原理是什么? 为什么要分库分表? 二.水平分表 ...
- TDSQL MySQL版基本原理-水平分表 读写分离 弹性扩展 强同步
TDSQL MySQL版(TDSQL for MySQL)是部署在腾讯云上的一种支持自动水平拆分.Shared Nothing 架构的分布式数据库.TDSQL MySQL版 即业务获取的是完整的逻辑库 ...
最新文章
- OpenGLES 关于 数学 的分支 - 线性变化量、离散量、随机量
- Contest Hunter CH6201 走廊泼水节 最小生成树 Kruskal
- 怎么组建战队_硬管加油技术在上世纪就诞生了,为何只有美国在用,我们怎么不用?...
- 如何将自开发的SAP UI5应用以tile的方式配置到SAP Fiori Launchpad里
- EasyUI之Tree树形结构(一)
- linux内核对TCP的连接状态管理
- 关于uboot中tftp上传内存数据到tftp服务器
- istio sidecar流量接管_Istio是个啥?看完此文彻底搞懂(赠书)
- mysql sycho_2005年12月23日
- Pyinstller打包的exe文件反编译
- Python分组百分比排名
- C语言Matrix编程题——[Recursion]D. Liang 8.2 Fibonacci number
- word自定义多级编号列表
- 微带线电容设计与仿真
- AOP技术介绍--(AOP技术基础)
- LoadRunner11的安装、破解以及基本使用
- (二)弹性布局Flex
- JAVA日志记录方法
- 石河子大学师生为荣获2018年“马云乡村教师奖”校友点赞
- Mysql常用类型和字段属性
热门文章
- Spring Aop 源码笔记和源码阅读个人技巧分享
- aspf ftp_【解析】文件传输协议:FTP、TFTP、SFTP有什么区别?
- mybatis使用详解
- JVM初识之内存分析常用命令和工具
- 冒泡排序(C#)实现
- SpringAOP原理解析
- KDD China技术峰会回顾:大牛云集,教你如何基于大数据 手握人工智能未来
- 《云数据中心构建实战:核心技术、运维管理、安全与高可用》——2.4 云计算的发展历程与未来趋势...
- Oracle等待事件之Enqueue(锁)
- HTML5 History API让ajax能回退到上一页