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


相关推荐

  • 404页面制作

    404页面制作router/index.js//引用模板importErrorfrom’../components/Error.vue’//配置路由exportdefault[{ path:’*’, component:Error} ]Error.vue<template> <div> {{msg}} 页面不存在 </div…

    2022年7月27日
    4
  • 点云显示工具(超详细教程)

    点云显示工具(超详细教程)

    2020年11月8日
    216
  • lldp协议代码阅读_microsoft,lldp协议[通俗易懂]

    lldp协议代码阅读_microsoft,lldp协议[通俗易懂]第1页共17页竭诚为您提供优质文档/双击可除microsoft,lldp协议篇一:lldp协议配置指导lldp协议交换机配置指导802.lab链接层发现协议(linklayerdiscoveryprotocol),将能够使企业网络的故障查找变得更加容易,并加强网络管理工具在多厂商环境中发现和保持精确网络拓扑结构的能力。该协议可望在下月成为一项正式的标准。lldp是一种邻近发现协议。它为以太网网络设…

    2022年6月2日
    41
  • MySQL 数据库命名规范.PDF

    MySQL 数据库命名规范.PDF

    2022年2月20日
    54
  • 机器学习常见的采样方法[通俗易懂]

    机器学习常见的采样方法[通俗易懂]我们在训练模型的过程,都会经常进行数据采样,为了就是让我们的模型可以更好的去学习数据的特征,从而让效果更佳。但这是比较浅层的理解,更本质上,数据采样就是对随机现象的模拟,根据给定的概率分布从而模拟一个

    2022年8月4日
    6
  • pyd文件介绍

    pyd文件介绍pyd 一般是 python 外的其他语言如 C C 编写的 python 扩展模块 即 python 的一个动态链接库 与 dll 文件相当 在 linux 系统中一般为 so 文件 也有的时候 为了对 python 文件进行加密 会把 python 模块编译成 pyd 文件 供其他人使用 拿到一个 pyd 文件 在没有文档说明的情况下 可以试试查看模块内的一些函数和类的用法 首先 importXXX pyd 的文件名 然后直接 print dir XXX print help XXX 其中 dir 列出了属性和方法 help

    2025年8月12日
    1

发表回复

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

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