位置: 编程技术 - 正文

MySQL中表分区技术详细解析(mysql8 表分区)

编辑:rootadmin

推荐整理分享MySQL中表分区技术详细解析(mysql8 表分区),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:mysql分表分区,mysql表分区实际开发运用,mysql数据表分区,mysql分区表建表语句,mysql分区和分表优缺点,mysql的表分区,mysql数据表分区,mysql的表分区,内容如对您有帮助,希望把文章链接给更多的朋友!

MySQL 分区技术(是mysql 5.1以版本后开始用->是甲骨文mysql技术团队维护人员以插件形式插入到mysql里面的技术)

1、概述

数据库单表到达一定量后,性能会有衰减,像mysqlsql server等犹为明显,所以需要把这些数据进行分区处理。同时有时候可能出现数据剥离什么的,分区表就更有用处了!

MySQL 5.1 中新增的分区(Partition)功能就开始增加,优势也越来越明显了:

与单个磁盘或文件系统分区相比,可以存储更多的数据 很容易就能删除不用或者过时的数据 一些查询可以得到极大的优化 涉及到 SUM()/COUNT() 等聚合函数时,可以并行进行 IO吞吐量更大 分区允许可以设置为任意大小的规则,跨文件系统分配单个表的多个部分。实际上,表的不同部分在不同的位置被存储为单独的表。

2、分区技术支持

在5.6之前,使用这个参数查看当将配置是否支持分区:

如果是yes表示你当前的配置支持分区。 在5.6及以采用后,则采用如下方式进行查看:

rows in set (0. sec) 最后一行,可以看到partition是ACTIVE的,表示支持分区。

3、分区类型及举例

3.1范围分区

RANGE 分区:基于属于一个给定连续区间的列值,把多行分配给分区。如时间,连续的常量值等 --按年分区

3.2列举分区

LIST 分区:类似于按RANGE分区,区别在于LIST分区是基于列值匹配一个离散值集合中的某个值来进行选择。比如说类似性别(1,2)等属性值。

MySQL中表分区技术详细解析(mysql8 表分区)

注意,list只能是数字,使用字符会报错ERROR (HY): VALUES value for partition 'psex1' must have type INT。

3.3离散分区

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

--以int字段hash分区

--以时间函数hash分区

3.4键值分区

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

3.5其它说明

mysql-5.5开始支持COLUMNS分区,可视为RANGE和LIST分区的进化,COLUMNS分区可以直接使用非整形数据进行分区。COLUMNS分区支持以下数据类型: 所有整形,如INT SMALLINT TINYINT BIGINT。FLOAT和DECIMAL则不支持。 日期类型,如DATE和DATETIME。其余日期类型不支持。 字符串类型,如CHAR、VARCHAR、BINARY和VARBINARY。BLOB和TEXT类型不支持。 COLUMNS可以使用多个列进行分区。

总结:

分区表是在MySQL5.1中新增的的功能,截止到MySQL5.1.-rc,分区技术并不很成熟,很多分区的维护和管理功能未实现。如,分区内数据存储空间的回收、分区的修复、分区的优化等,MySQL的分区可以用在可以按分区删除的表中,且对数据库的修改操作不大,且频繁按照分区字段进行查询的表中(如恶意代码中的统计表按天分区,经常按照时间进行查询、分组等,且可以按天删除分区)。此外,由于MySQL无全局索引只有分区索引,当一张有2个唯一索引[z5] 的时候,不能将此表分区,分区列中必须包含主键。否则MySQL会报错。

总之,MySQL对于分区的限制很多,且个人认为hash和key的分区实际意义不是太大。

分区引入了一种新的优化查询的方式(当然,也有相应的缺点)。优化器可以使用分区函数修整分区,或者把分区从查询中完全移除掉。它通过推断是否可以在特定的分区上找到数据来达成这种优化。因此在最好的情况下,修整可以让查询访问更少的数据。重要的是要在WHERE子句中定义分区键,即使它看上去像是多余的。通过分区键,优化器就可以去掉不用的分区,否则的话,执行引擎就会像合并表那样访问表的所有分区,这在大表上会非常慢。分区数据比非分区数据更好维护,并且可以通过删除分区来移除老的数据。分区数据可以被分布到不同的物理位置,这样服务器可以更有效地使用多个硬盘驱动器。

[z1]分区函数的返回值必须是整数,新增分区的分区函数返回值应大于任何一个现有分区的分区函数的返回值。 [z2]对于有主键的表错误提示:# A PRIMARY KEY MUST INCLUDE ALL COLUMNS INTHE TABLE'S PARTITIONING FUNCTION,没有主键的则无此约束 [z3]注意:对于通过RANGE分区的表,只可以使用ADD PARTITION添加新的分区到分区列表的高端。即不能添加比这个分区的范围小的分区。 [z4] 对于按照RANGE分区的表,只能重新组织相邻的分区;不能跳过RANGE分区。不能使用REORGANIZEPARTITION来改变表的分区类型;也就是说,例如,不能把RANGE分区变为HASH分区,反之亦然。也不能使用该命令来改变分区表达式或列。 [z5]注意主键和唯一索引的区别

官方资料:

mysql5.6安装配置方法图文教程 我也是从0开始学习python,然而刚刚处理好数据了,就要使用数据库来存放数据了,所以不得不把mysql数据库配备好,因为实在实验室的机器上操作,机

MySql存储过程学习知识小结 什么是存储过程:存储过程可以说是一个记录集吧,它是由一些T-SQL语句组成的代码块,这些T-SQL语句代码像一个方法一样实现一些功能(对单表或多表

MySQL函数一览_MySQL函数全部汇总 前言MySQL提供了众多功能强大、方便易用的函数,使用这些函数,可以极大地提高用户对于数据库的管理效率,从而更加灵活地满足不同用户的需求。本

标签: mysql8 表分区

本文链接地址:https://www.jiuchutong.com/biancheng/347573.html 转载请保留说明!

上一篇:mysql 5.7.13 winx64安装配置方法图文教程

下一篇:mysql5.6安装配置方法图文教程(mysql5.5安装配置教程)

  • 税控盘280怎么变398了
  • 利润表里面的所得税
  • 跨年度的租金收入如何入账
  • 我国流转税的税种有哪些
  • 申报个税时怎么获取个税专项附加扣除
  • 暴利税怎么计算
  • 企业所得税负担变动率
  • 厂房地面硬化
  • 股权转让所得如何申报个税
  • 满减 优惠券
  • 个人打钱对公账户,可以算公司营业收入吗
  • 成本少结转了怎么调回
  • 火车票补票报销流程
  • 事业单位结余如何分配
  • 亏损企业研发费加计扣除可以递延吗
  • 工程项目中的设备主要包括什么和什么
  • 没有收入是否可以入党
  • 解聘职工赔偿工资包括哪些
  • 公司注销后虚开发票
  • 开了增值税专用发票对方不付款可以申请冻结对方公帐嘛
  • 预付专利转让费计入什么科目?
  • 个人买卖黄金如何缴税
  • 小规模10万以下免税分录
  • 在win11
  • win10系统如何禁用驱动强制签名
  • 进口的固定资产包括哪些
  • 未开票收入缴纳增值税怎么冲减补开发票
  • php多线程怎么实现
  • 公众号采集文章手机操作
  • 咨询服务费怎么报印花税
  • abstract php
  • 最小的的照片
  • php imagecopymerge
  • php调试函数
  • php如何实现
  • 2021劳务分包专票开几个点
  • 用友软件怎么删除已经建立的账套
  • vuev-for循环k值的意义
  • service iptables save
  • php对接微信支付教程
  • 终止pppoe会话
  • 电子税务局税种核定在哪里
  • python如何反编译
  • 房产中介收取的贷款服务费合不合法
  • 个体工商户未年报 经营异常罚款
  • 建筑工程分包案例
  • 最新版税控盘怎么设置打印机
  • 企业亏损所得税处理
  • 核销单取消后出口收汇流程
  • 营改增是否降低了企业税负
  • 企业清算未分配利润怎么交税
  • 电商商品采购流程
  • 固定资产报废的账务处理
  • 销售折扣怎么制定
  • 小规模纳税人建筑服务预缴增值税
  • u8委外怎么核销
  • 长期待摊费用可以摊销20年吗
  • 其他应收款待抵扣借方是什么意思啊
  • 行政事业单位经济责任审计的主要内容
  • 税务代扣社保怎么办理?
  • PureVoice.exe - PureVoice是什么进程 有什么用
  • 重装win7系统后没有无线网
  • win10蓝屏故障
  • Win7系统如何打开摄像头
  • win10商店没有图标
  • Windows命令行删除文件夹
  • 一、Unity3D 5.0.1-示例项目“汽车游戏”的展示及开发准备
  • 怎么检测端口通不通
  • 使用netcat(瑞士军刀)进行文件传输
  • 批处理setlocal
  • node网络爬虫
  • IE6支持position:fixed完美解决方法
  • python解析函数
  • Caused by: android.content.ActivityNotFoundException: No Activity found to handle Intent错误的记录。
  • python的设置
  • javascriptjs
  • 医院开具的电子票据是发票吗
  • 哈尔滨银行网上银行怎么开通
  • 个人年收入超过多少不能退税
  • 民办非企业暂行
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设