千家信息网

如何进行MySQL Sharding可扩展设计

发表于:2024-09-22 作者:千家信息网编辑
千家信息网最后更新 2024年09月22日,今天就跟大家聊聊有关如何进行MySQL Sharding可扩展设计,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。一.背景我们知道,当数据库中的
千家信息网最后更新 2024年09月22日如何进行MySQL Sharding可扩展设计

今天就跟大家聊聊有关如何进行MySQL Sharding可扩展设计,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

一.背景
  我们知道,当数据库中的数据量越来越大时,不论是读还是写,压力都会变得越来越大。采用MySQL Replication多master多slave方案,在上层做负载均衡,虽然能够一定程度上缓解压力。但是当一张表中的数据变得非常庞大时,压力还是 非常大的。试想,如果一张表中的数据量达到了千万甚至上亿级别的时候,不管是建索引,优化缓存等,都会面临巨大的性能压力。
  二.定义
  数据sharding,也称作数据切分,或分区。是指通过某种条件,把同一个数据库中的数据分散到多个数据库或多台机器上,以减小单台机器压力。
  三.分类
  数据分区根据切分规则,可以分为两类:
  (1)垂直分区:以表为单位,把不同的表分散到不同的数据库或主机上。特点是规则简单,实施方便,适合业务之间耦合度低的系统。
  (2)水平分区:以行为单位,将同一个表中的数据按照某种条件拆分到不同的数据库或主机上。特点是相对复杂,适合单表巨大的系统。
  在实际情况中,有的时候把垂直分区和水平分区结合使用。
  四.示意图
  下面通过几张图来给出上面三种分区方式的直观效果。
  (1)垂直分区
  

  (2)水平分区
  

  (3)联合分区
  

  五.注意事项
  下面我们所说的分区,主要是指水平分区。
  (1)在实施分区前,我们可以查看所安装版本的mysql是否支持分区:

 mysql> show variables like "%partition%";

  如果支持则会显示:
+-------------------+-------+
| Variable_name | Value |
+-------------------+-------+
| have_partitioning | YES |
+-------------------+-------+
  (2)分区适用于一个表的所有数据和索引;不能只对数据分区而不对索引分区,反之亦然,同时也不能只对表的一部分进行分区。
  (3)分区类型:
  RANGE 分区:基于属于一个给定连续区间的列值,把多行分配给分区。
  LIST 分区:类似于按RANGE分区,区别在于LIST分区是基于列值匹配一个离散值集合中的某个值来进行选择。
  HASH分区:基于用户定义的表达式的返回值来进行选择的分区,该表达式使用将要插入到表中的这些行的列值进行计算。
  KEY 分区:类似于按HASH分区,区别在于KEY分区只支持计算一列或多列,且MySQL 服务器提供其自身的哈希函数。必须有一列或多列包含整数值。
  无论使用何种类型的分区,分区总是在创建时就自动的顺序编号,且从0开始记录。当有一新行插入到一个分区表中时,就是使用这些分区编号来识别正确的分区。
  (4) MySQL提供了许多修改分区表的方式。添加、删除、重新定义、合并或拆分已经存在的分区是可能的。所有这些操作都可以通过使用ALTER TABLE 命令的分区扩展来实现.
  (5) 可以对已经存在的表进行分区,直接使用alter table命令即可。

看完上述内容,你们对如何进行MySQL Sharding可扩展设计有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注行业资讯频道,感谢大家的支持。

数据 压力 数据库 水平 支持 不同 内容 索引 设计 巨大 主机 单位 命令 方式 时候 机器 条件 特点 类型 系统 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 云服务器 网盘 长沙市红绿蓝网络技术有限公司 易享极合科技互联网趋势 数据库用命令删除表内的重复字段 会计算机网络技术的做什么工作 比特币期权软件开发 国家网络安全知识竞赛题目 网络安全近期大事件 温州文成县最火软件开发 喵眼精灵服务器繁忙 盈科思泰网络技术怎么样 阿里云8核32g云服务器多少钱 云原生 数据库 售前 招聘 网站底部关于服务器的连接 linux网络安全主要内容 宝山区第三方网络技术服务代理商 易语言mdb数据库读写 苏州市互众网络技术有限公司 现实生活中有网络安全比赛吗 神经网络技术实例 清远卫星软件开发厂家直销 云服务器 网盘 华为将出售x86服务器 北京群控系统云控软件开发商 网络安全问题app断网 计算机网络安全与管理知识点 江西机电软件开发公司 北邮数据库技术与应用期末 企业微信登录要求设置服务器 香港服务器哪家好用
0