mysql 取模分区_MySQL分区

mysql 取模分区_MySQL分区分表是将一个大表按照一定的规则分解成多张具有独立存储空间的实体表,app读写的时候根据事先定义好的规则得到对应的子表名,然后去操作它。而分区是将数据分段划分在多个位置存放,分区后,表面上还是一张表,但数据散列到多个位置了。app读写的时候操作的还是大表名字,db自动去组织分区的数据。分区类型主要有range、list、hash、key以常规hash举例说明分区是如何创建的常规hash是取模运算创建…

大家好,又见面了,我是你们的朋友全栈君。

分表是将一个大表按照一定的规则分解成多张具有独立存储空间的实体表,app读写的时候根据事先定义好的规则得到对应的子表名,然后去操作它。而分区是将数据分段划分在多个位置存放,分区后,表面上还是一张表,但数据散列到多个位置了。app读写的时候操作的还是大表名字,db自动去组织分区的数据。

分区类型主要有range、list、hash、key

以常规hash举例说明分区是如何创建的

常规hash是取模运算

创建一个雇员表,根据id分成4个区,根据取模结果分别分成0,1,2,3四个区CREATE TABLE `partitions` (

`id` int(10) NOT NULL,

`ename` varchar(100) NOT NULL,

`hired` date NOT NULL DEFAULT ‘1992-03-03’,

`separated` date NOT NULL DEFAULT ‘1992-03-03’,

`job` varchar(100) NOT NULL,

`store_id` int(10) NOT NULL

)

partition by hash (id) partitions 4;

创建成功之后查看数据文件,数据文件和索引文件单独存放

858fb1695b00161b4bacaf894dd0b431.png

然后插入数据测试数据是否已经分区存在

a0e064ebf6155218e5f614cf4ffe246e.png

按照预定的结果,id为1应该放在分区1,2放在分区2,3放在分区3,4放在分区0

查看分区的分布情况SELECT PARTITION_NAME,PARTITION_METHOD,PARTITION_EXPRESSION,PARTITION_DESCRIPTION,TABLE_ROWS,SUBPARTITION_NAME,SUBPARTITION_METHOD,SUBPARTITION_EXPRESSION

FROM information_schema.PARTITIONS WHERE TABLE_SCHEMA=SCHEMA() AND TABLE_NAME=’partitions’;

584c154cb6081aa9e8e5da7824db7da8.png

可以看到情况如预期一样

hash分区由原来的四个合并成两个,然后查看数据如何存储

ALTER TABLE `partitions` COALESCE PARTITION 2

然后查看分布情况

3546ac48075d23fb353289c3fd82bfbb.png

发现数据重新取模存储到新的分区

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/130616.html原文链接:https://javaforall.net

(0)
上一篇 2022年4月29日 上午9:32
下一篇 2022年4月29日 上午9:32


相关推荐

  • aliddns ipv6_群晖使用阿里云DDNS(ipv4和ipv6)「建议收藏」

    aliddns ipv6_群晖使用阿里云DDNS(ipv4和ipv6)「建议收藏」复制,写成sh脚本,添加进群晖定时任务即可。ipv4注意前四个需要自己填入,还有获取ip那里要注意网络接口,我的是ppp0。#!/bin/shApiId=”***************”ApiKey=”***************”Domain=’************’SubDomain=’********’#这四个自己写Nonce=$(date-u”+%N”)Timest…

    2022年5月30日
    149
  • MySQL字段类型如何转为java_Java JDBC中,MySQL字段类型到JAVA类型的转换

    MySQL字段类型如何转为java_Java JDBC中,MySQL字段类型到JAVA类型的转换一、概述在使用JavaJDBC时,你是否有过这样的疑问:MySQL里的数据类型到底该选择哪种Java类型与之对应?本篇将为你揭开这个答案。二、映射类型java.sql.Types定义了常用数据库(MySQL、Oracle、DB2等)所用到的数据类型,官名也叫JDBC类型。每个数据库产品的数据类型定义各不相同,但都有JDBC类型与之对应,如MySQL的BIGINT–>JDBC的BIGINT…

    2022年7月20日
    22
  • C语言文件打开方式简介

    C语言文件打开方式简介1、“r”以只读方式打开一个文件;2、“w”以只写方式打开一个文件;3、“a”打开一个文件追加;4、“rb”以只读方式打开一个二进制文件;5、“rw”以只写方式打开一个二进制文件;6、“ra”打开一个二进制文件追加;7、”r+”以读写方式打开一个文件;8、“w+”以读写方式建立一个文件;9、“a+”以读写方式打开一个文件追加;10、“rb+”以读写方式打开一个二

    2022年7月13日
    17
  • android生成apk包出现Unable to add "XXX" Zip add failed问题

    android生成apk包出现Unable to add "XXX" Zip add failed问题

    2022年1月2日
    48
  • 关于mkv字幕

    关于mkv字幕MKV 文件中的字幕属于外挂字幕 而且是纯文本类型 不是 DVD 的 IDX SUB 的点阵图片 一般 MKV 文件字幕制作很少有用宋体的 都是用的比较好看的字体 而这些字体在系统安装完成默认是没有的 为了还原制作

    2026年3月19日
    2
  • C语言随机数函数

    C语言随机数函数rand 简介 1 使用该函数首先应在开头包含头文件 stdlib h include stdlib h C 建议使用 include cstdlib 2 在标准的 C 库中函数 rand 可以生成 0 RAND MAX 之间的一个随机数 其中 RAND MAX 是 stdlib h 中定义的一个整数 它与系统有关 rand 函数没有输入参数 直接通过表达式 rand 来引用 例如可以用下面的语句来打印两个随机数 printf Random cstdlib stdlib h stdlib h

    2026年3月18日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号