如何进行MySQL Sharding可扩展设计的分析

网友投稿 346 2023-12-10

如何进行MySQL Sharding可扩展设计的分析

本篇文章为大家展示了如何进行MySQL Sharding可扩展设计的分析,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

如何进行MySQL Sharding可扩展设计的分析

MySQL Sharding可扩展设计

一.背景    

我们知道,当中的数据量越来越大时,不论是读还是写,压力都会变得越来越大。采用MySQL Replication多master多slave方案,在上层做负载均衡,虽然能够一定程度上缓解压力。但是当一张表中的数据变得非常庞大时,压力还是非常大的。试想,如果一张表中的数据量达到了千万甚至上亿级别的时候,不管是建索引,优化缓存等,都会面临巨大的性能压力。

二.定义

    数据sharding,也称作数据切分,或分区。是指通过某种条件,把同一个数据库中的数据分散到多个数据库或多台机器上,以减小单台机器压力。

三.分类

    数据分区根据切分规则,可以分为两类:

(1)垂直分区:以表为单位,把不同的表分散到不同的数据库或主机上。特点是规则简单,实施方便,适合业务之间耦合度低的系统。

(2)水平分区:以行为单位,将同一个表中的数据按照某种条件拆分到不同的数据库或主机上。特点是相对复杂,适合单表巨大的系统。

    在实际情况中,有的时候把垂直分区和水平分区结合使用。

四.注意事项

     下面我们所说的分区,主要是指水平分区。

    (1)在实施分区前,我们可以查看所安装版本的是否支持分区:

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可扩展设计的分析,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注行业资讯频道。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:银行API开放平台案例,提高金融服务的便捷性与创新性
下一篇:mssqlserver数据库导出到另外一个数据库的方法是什么
相关文章

 发表评论

暂时没有评论,来抢沙发吧~