iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >MySQL分区摘要
  • 396
分享到

MySQL分区摘要

2024-04-02 19:04:59 396人浏览 独家记忆
摘要

Mysql支持的分区类型为水平分区,并不支持垂直分区。 水平分区,以行为单位,划分到不同的物理文件中;垂直分区即针对列划分。 mysql的分区,除了InnoDB支持,MyISAM也支持,所以分区并不是引擎级

Mysql支持的分区类型为水平分区,并不支持垂直分区。

水平分区,以行为单位,划分到不同的物理文件中;垂直分区即针对列划分。

mysql的分区,除了InnoDB支持,MyISAM也支持,所以分区并不是引擎级别的事儿。

分区并不一定会让访问变得更快,尤其是OLTP应用,OLAP应用使用分区的效果往往更好。

Mysql支持的如下几种分区类型。

  • RANGE 行数据基于一个给定连续区间的列值划分。
  • LIST 和RANGE类似,只是LIST面向的不是连续区间值,而是离散的集合
  • HASH 根据自定义的表达式返回值进行分区,不支持负数返回。
  • KEY 根据MySQL提供的hash函数进行分区

不论按照哪种类型进行分区,如果当前表有主键或者唯一索引,分区列必须是唯一索引的组成部分。反过来,如果当前表没有定义主键也没有唯一索引,分区列可以是任何列。


分区操作示例:

create table sales(id int, price decimal(9,2), season int, finyear datetime) 
partition by range(season) (
prtition s1 values less than (4),
partition s2 values less than (7),
partition s3 values less than (10),
partition s4 values less than (13));

使用函数获取range值

create table sales(id int, price decimal(9,2), season int, finyear datetime) 
partition by range(year(finyear)) ( 
partition s1 values less than (2016), 
partition s2 values less than (2017), 
partition s3 values less than (2018),
partition s4 values less than (2020));
create table sales(id int, price decimal(9,2), season int, finyear datetime) 
partition by range(year(finyear)*100+ month(finyear)) ( 
partition s1 values less than (201804), 
partition s2 values less than (201807), 
partition s3 values less than (201810),
partition s4 values less than (201813));

LIST分区示例

create table sales(id int, price decimal(9,2), season int, finyear datetime) 
partition by LIST(id) ( 
partition s1 values in (1,3,5,7,9), 
partition s2 values in (2,4,6,8,10));

HASH分区示例

create table sales(id int, price decimal(9,2), season int, finyear datetime) engine=innodb
partition by hash(year(finyear));

KEY分区示例

create table sales(id int, price decimal(9,2), season int, finyear datetime) engine=innodb
partition by key(finyear);
分区后的数据存储结构及使用效果

以RANGE分区为例
MySQL分区摘要

插入数据

insert into sales select 1,10.05,1,'2018-01-01';
insert into sales select 2,10.05,3,'2018-03-01';
insert into sales select 3,10.05,4,'2018-04-01';

执行查询

explain partitions 
select * from sales where finyear < '2016-01-01';

MySQL分区摘要

可以看到,查询优化器,直接跳过第四个分区,在前三个分区中查询,这就是要的效果。

除了分区,还有分表、分库、分片操作,每一个都很重要,也都有各自的适用场景。

您可能感兴趣的文档:

--结束END--

本文标题: MySQL分区摘要

本文链接: https://www.lsjlt.com/news/42976.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Prometheus 摘要分位数错误
    Prometheus是一款强大的开源监控系统,被广泛应用于云原生领域。然而,近期在使用Prometheus进行指标统计时,一些用户遇到了一个名为“摘要分位数错误”的问题。这个问题会导致...
    99+
    2024-02-09
  • Python学习摘要
    PyCharm 的激活方式: 直接打开pycharm,选License server激活,输入:http://idea.imsxm.com Tesseract-OCR 使用   修改pytesseract.py原文件 tesse...
    99+
    2023-01-31
    摘要 Python
  • java 又一摘要 Reflection
    Core java 一本很好的书[@more@]Only inner classes can be private.Regular classes always have either package or public visibilit...
    99+
    2023-06-03
  • 智能财务软件费用分录摘要
    在使用金蝶KIS软件之前,我一直认为财务工作是一项繁琐、无聊的任务,而且需要耗费大量的时间和精力去完成。但是,当我使用金蝶KIS软件后,我开始重新审视这个看似枯燥的工作,并发现它可以让我从繁琐的财务工作中解放出来,并获得更多的时间和精力去做...
    99+
    2023-10-28
    财务软件 分录 摘要
  • PHP Hash信息摘要扩展框架的示例分析
    这篇文章主要介绍PHP Hash信息摘要扩展框架的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!PHP的Hash信息摘要扩展框架今天我们主要学习的是 PHP 中一些 Hash 散列加密相关的扩展函数的使用,而...
    99+
    2023-06-15
  • mysql表名要区分大小写吗
    本篇内容主要讲解“mysql表名要区分大小写吗”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“mysql表名要区分大小写吗”吧! my...
    99+
    2024-04-02
  • Java实现MD5消息摘要算法
    首先,必须要强调的一点,MD5不是加密算法,而是消息摘要算法,具有不可逆性。字符串通过MD5处理后会生成128位的二进制串。我们通常会将其转化为16进制串,用于登录密码验证。加密算法与消息摘要算法区别: 加密算法具有相应地解密算法,通过加...
    99+
    2023-05-31
    java md5 摘要
  • mysql分区表:日期分区
    mysql分区表:日期分区 1.创建分区表2.查看分区3.添加分区4.存储过程:分区删除与创建5.事件定时6.触发器设计:子表每插入一行,总表获得一行7.创建索引8.添加枚举型字段 1.创建分区表 CREATE TAB...
    99+
    2023-08-21
    mysql 数据库
  • CSS3怎么用伪元素做页码摘要
    这篇文章主要为大家展示了“CSS3怎么用伪元素做页码摘要”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“CSS3怎么用伪元素做页码摘要”这篇文章吧。CSS3 用伪...
    99+
    2024-04-02
  • MySQL分区之子分区详解
    目录介绍一、创建子分区1.不定义每个子分区2.定义每个子分区3.测试数据二、分区管理1.合并分区2.拆分分区3.删除分区三、错误的子分区创建四、移除表的分区总结介绍 子分区其实是对每...
    99+
    2024-04-02
  • MySQL分区之LIST分区详解
    目录介绍一、创建分区1.插入数据2.插入不在列表中的值二、分区管理1.增加分区2.合并分区3.拆分分区4.删除分区三、其它分区1.对时间字段进行分区四、移除表的分区参考:总结介绍 L...
    99+
    2024-04-02
  • MySQL分区之KEY分区详解
    目录介绍一、常规KEY二、LINEAR KEY三、分区管理四、移除表的分区总结介绍 KEY分区和HASH分区相似,但是KEY分区支持除text和BLOB之外的所有数据类型的分区,而H...
    99+
    2024-04-02
  • MySQL分区之HASH分区详解
    目录介绍一、常规HASH二、线性HASH(LINEAR HASH)三、分区管理1.合并分区2.增加分区四、移除表的分区总结介绍 基于给定的分区个数,将数据分配到不同的分区,HASH分...
    99+
    2024-04-02
  • MySQL分区之RANGE分区详解
    目录介绍一、RANGE分区1.创建分区2.性能分析3.增加分区4.删除分区5.拆分合并分区二、日期字段分区方法三、null值处理四、移除表的分区总结介绍 RANGE分区基于一个给定的...
    99+
    2024-04-02
  • 怎么实现一个HmacMD5消息摘要算法
    怎么实现一个HmacMD5消息摘要算法?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。算法实现:import javax.crypto.KeyGenerator;&...
    99+
    2023-05-31
    hmacmd5 acm
  • 如何解决微信二次分享不显示摘要和图片的问题
    这篇文章主要为大家展示了“如何解决微信二次分享不显示摘要和图片的问题”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“如何解决微信二次分享不显示摘要和图片的问题”这...
    99+
    2024-04-02
  • 华为OD机试 - 字符串摘要(Java & JS & Python)
    题目描述 给定一个字符串的摘要算法,请输出给定字符串的摘要值 去除字符串中非字母的符号。 如果出现连续字符(不区分大小写) ,则输出:该字符 (小写) + 连续出现的次数。 如果是非连续的字符(不区分大小写),则输出:该字符(小写) + ...
    99+
    2023-09-02
    算法 华为机试 Java JavaScript Python
  • MySQL的分区(一)
    mysql支持范围分区(range)、列表分区(list)、column分区、哈希分区(hash)、key分区、字段列表分区等 以timestamp类型字段作为分区键进行范围分区,有两种方式: C...
    99+
    2024-04-02
  • mysql新增分区
    在 MySQL 中,你可以使用 ALTER TABLE 语句来新增分区。 例如,假设你有一个名为 users 的表,并希望为它新增一个名为 p1 的分区,可以使用以下语句: ALTER TABLE users ADD PARTITI...
    99+
    2023-09-25
    mysql 数据库
  • MySQL分区介绍
    不论创建何种类型的分区,如果表中存在主键或唯一索引时,分区列必须是唯一索引的一个组成部分 mysql> create table t1(     -> col1 i...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作