{{ item.name }}
{{ item.name }}

{{ it.name }}

{{ it.text }}

{{ it.name }}

{{ innerIt.name }}

{{ innerIt.text }}

{{news.time}}
{{news.title}}
mysql垂直分区和水平分区
2020-11-18发布 162浏览

Mysql分区是指按照一定的规则将一个大表分解成几个较小的部分。这里的规则一般是使用分区规则对表进行水平分区;没有逻辑上的变化,但实际上表已经被分成了几个物理对象,每个物理对象又被分成了一个独立的对象。与没有分区的表相比,分区表有很多优点,包括并发统计查询、快速归档和删除分区数据、分布式存储和更好的查询性能。


mysql垂直分区和水平分区


数据库扩展大概分为以下几个步骤: 

1、读写分离:当数据库访问量还不是很大的时候,我们可以适当增加服务器,数据库主从复制的方式将读写分离; 


2、垂直分区:一旦写操作增加,那么主从数据库将花费更多时间在数据同步上,此时服务器也承受不起;然后对于数据的垂直分区来说,数据的垂直分区思想是将写操作较为频繁的数据表,比如用户表_ user,或订单表_ orders,分离出这两个表,放在不同的服务器上,如果这两个表之间存在联表查询,那么只能将原始 sql语句分开,先查询一个表,再查询另一个表,虽然说这样做会消耗更多的性能,但是相对于这样的大量数据同步,负担还是减轻了很多;


3、水平分区:但是事情往往不尽如人意,垂直分区可能会用一段时间。因为网站太热,每天访问量100w,突然跳到1000 W,这个时候数据可以分开,我们可以根据用户的Id来分配。比如%2或者%10的形式,这种形式对以后的扩展有很大的限制。当我从10个分区增加到20个时,以下提供几种常见的算法: 

  Hash算法:就是采用user_id%的方式; 

  范围:可以根据user_id字符值范围分区,如1-1000为一区,1001-2000则是另一个区等; 

  映射关系:就是将user_id存在的所对应的分区放在数据库中保存,当用户操作时先去查询所在分区,再进行操作; 


对于以上几种扩展方式,读写分离主要是操作上的扩展,垂直分区主要是对写入较频繁数据表的分离,水平分区主要是数据分离;


上一篇
关闭或启动mysql服务如何操作
400-820-6580 13916131869
marketing@actionsky.com
上海市闵行区万源路2138号泓茂中心2号楼
产品详情
关系型数据库
AI数据库
数据库智能管理平台
数据库生态产品
行业案例
金融行业
新零售行业
制造业
通信行业
更多
公司动态
最新新闻
国产化信息
技术分享
关于我们
公司简介
公司分布
国家专利
资质认证
扫码关注公众号
© Copyright 2017, All rights reserved by: 上海爱可生信息技术股份有限公司 沪ICP备12003970号-1 | 法律声明 | 网站地图
沪公网安备 31010402003331号