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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • springboot引用自定义属性

    springboot引用自定义属性

    2021年3月12日
    145
  • linux tty0_linuxtty中文

    linux tty0_linuxtty中文创建iso目录作为制作LiveCD的根的目录,并在其中创建grub所需的目录#mkdir-pviso/{ttylinux,boot}#mkdir–pviso/boot/grub#cp-rv/usr/share/grub/i386-redhat/*iso/boot/grub将下载到的ttylinuxiso镜像文件挂载至某目录,并复制文件#mount-oloop/root/…

    2022年8月12日
    8
  • pycharm激活码【2021免费激活】[通俗易懂]

    (pycharm激活码)JetBrains旗下有多款编译器工具(如:IntelliJ、WebStorm、PyCharm等)在各编程领域几乎都占据了垄断地位。建立在开源IntelliJ平台之上,过去15年以来,JetBrains一直在不断发展和完善这个平台。这个平台可以针对您的开发工作流进行微调并且能够提供…

    2022年3月28日
    52
  • 注册机request填什么_注册register

    注册机request填什么_注册register  广播的注册分为动态注册和静态注册,静态注册主要在开机后PackageManagerService利用 AndroidManifest扫描安装的apk获取AndroidManifest内注册的广播所以忽略静态注册。今天主要介绍动态广播的注册。   1. 简单举例 IntentFilterfilter=newIntentFilter();…

    2025年10月29日
    3
  • [转]Asp.Net MVC 扩展联想控件

    [转]Asp.Net MVC 扩展联想控件

    2021年8月24日
    39
  • 抓包工具charles手机代理抓手机包教程

    抓包工具charles手机代理抓手机包教程1、下载charles.zip压缩文件,放在电脑的一个路径下,解压charles.zip文件;2、打开charles文件夹下的charles.exe文件;3、点击工具栏的“Proxy”→“SSLProxyingSettings”→“add”_Host:输入【*】  ; Port:输入【443】→点击“OK”保存,图示如下4、获取IP地址:5、安装证书    ①电脑安装证书  …

    2022年6月5日
    29

发表回复

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

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