page contents

ORACLE与MySQL相比较哪个更好,这篇文章带你了解

这种形式的分区是对根据表的行进行分区,通过这样的方式不同分组里面的物理列分割的数据集得以组合,从而进行个体分割(单分区)或集体分割(1个或多个分区)。

attachments-2021-04-CTyHhng86081260e1cfb0.png

ORACLE与MySQL相比较哪个更好,这篇文章读完也许你就知道了:

一、MySQL的分区主要有两种形式:水平分区和垂直分区

水平分区(HorizontalPartitioning)

这种形式的分区是对根据表的行进行分区,通过这样的方式不同分组里面的物理列分割的数据集得以组合,从而进行个体分割(单分区)或集体分割(1个或多个分区)。

所有在表中定义的列在每个数据集中都能找到,所以表的特性依然得以保持。水平分区一定要通过某个属性列来分割。常见的比如年份,日期等。

垂直分区(VerticalPartitioning)

这种分区方式一般来说是通过对表的垂直划分来减少目标表的宽度,使某些特定的列被划分到特定的分区,每个分区都包含了其中的列所对应所有行。

可以用 showvariables like '%partition%';命令查询当前的mysql数据库版本是否支持分区。

分区的作用:数据库性能的提升和简化数据管理

在扫描操作中,mysql优化器只扫描保护数据的那个分区以减少扫描范围获得性能的提高。

分区技术使得数据管理变得简单,删除某个分区不会对另外的分区造成影响,分区有系统直接管理不用人工干预。

mysql从5.1版本开始支持分区。每个分区的名称是不区分大小写。同个表中的分区表名称要唯一。

二、 mysql分区类型

根据所使用的不同分区规则可以分成几大分区类型。

RANGE 分区:

基于属于一个给定连续区间的列值,把多行分配给分区。

LIST 分区:

类似于按RANGE分区,区别在于LIST分区是基于列值匹配一个离散值集合中的某个值来进行选择。

HASH分区:

基于用户定义的表达式的返回值来进行选择的分区,该表达式使用将要插入到表中的这些行的列值进行计算。这个函数可以包含MySQL中有效的、产生非负整数值的任何表达式。

KEY

分区:类似于按HASH分区,区别在于KEY分区只支持计算一列或多列,且MySQL服务器提供其自身的哈希函数。必须有一列或多列包含整数值。

复合分区:

基于RANGE/LIST 类型的分区表中每个分区的再次分割。子分区可以是 HASH/KEY 等类型。

上边说了一下mysql分区,但是现在在实际生产环境中体现出来的并不能像oracle那样分区以后能增加并发量,数据量,mysql的分区能在一定程度上提高性能,方便管理,还有待完善。结合分表,读写分离等方案会更好一些。

个人觉得,目前mysql的分区分表功能还不是完善,但是常用的range,list,hash,key加上组合分区,已经可以满足大部分的需求了,再加上日常的增删合并交换功能,已经适应大部分场景,至于不足的地方比如不支持自动新增分区,没有所谓的全局索引,对分区键的要求比较高,分区不宜过多等。

从功能性上说并没有什么太大区别,即使目前没有未来的版本也会加上,主要的问题是性能,总体而言,无论是查询还是增删改,性能都不是太好,特别是并发情况下,不过总的来说,结合你的业务在代码改动较小的情况下 ,利用MySQL,性能并不是太差。


相关文章:

SQL建立数据库:创建和使用数据库

SQL自动检查神器详细介绍

MySQL高级性能优化实战!看这篇就够了

更多技术资讯,请继续关注六星教育社区-程序员编程技术分享交流学习高端论坛

如果你想用Python开辟副业赚钱,但不熟悉爬虫与反爬虫技术,没有接单途径,也缺乏兼职经验
关注下方微信公众号:Python编程学习圈,获取价值999元全套Python入门到进阶的学习资料以及教程,还有Python技术交流群一起交流学习哦。

attachments-2022-06-Yorvln3q62abee4aae416.jpeg

  • 发表于 2021-04-22 15:37
  • 阅读 ( 632 )
  • 分类:数据库

你可能感兴趣的文章

相关问题

0 条评论

请先 登录 后评论
轩辕小不懂
轩辕小不懂

2403 篇文章

作家榜 »

  1. 轩辕小不懂 2403 文章
  2. 小柒 1320 文章
  3. Pack 1135 文章
  4. Nen 576 文章
  5. 王昭君 209 文章
  6. 文双 71 文章
  7. 小威 64 文章
  8. Cara 36 文章