mysql的hash分区_MySQL中的分区(五)HASH分区
HASH分区主要用来分散热点读,取保数据在预先确定个数的分区中尽可能的平均分布。对一个表执行HASH分区时,MySQL会对分区键应用一个散列函数,一次确定数据应该放在哪一个分区中。
MySQL分区支持两种HASH分区,常规HASH分区和线性HASH分区。
常规HASH使用的是取模算法,线性HASH使用的是线性2的幂运算。
CREATE TABLE emp2hash (id INT NOT NULL,
ename VARCHAR(30),
hired DATE NOT NULL DEFAULT '1970-01-01',
separated DATE NOT NULL DEFAULT '9999-12-31',
job VARCHAR(30) NOT NULL,store_id INT NOT NULL )
PARTITION BY HASH (store_id) PARTITIONS 4;
INSERT INTO emp2hash VALUES (1,'Tom','2010-10-10','9999-12-31','Clerk',234);
EXPLAIN PARTITIONS SELECT * FROM emp2hash WHERE store_id = 234
如果要增加分区数量,取模算法是MOD(expr,X+1),原来分区中的数据几乎都要重新计算,所以常规分区在分区管理上代价太大,MySQL提供了线性HASH分区,来降低分区管理的代价。Linear hash在分区维护(增加,删除,合并,拆分分区)时,MySQL能够处理的更加迅速,但是和常规HASH各分区之间的数据分布不太均衡。
CREATE TABLE emp2linehash(id INT NOT NULL,
ename VARCHAR(20),
hired DATE NOT NULL DEFAULT '1970-01-01',
separated DATE NOT NULL DEFAULT '9999-12-31',
job VARCHAR(30) NOT NULL,
store_id INT NOT NULL)
PARTITION BY LINEAR HASH (store_id) PARTITIONS 4;
常规分区时,保存数值A所在的分区,N(A)=MOD(A,num)=A&(num-1)
线性分区时,找到大于等于num的幂V=Power(2,ceiling(Log(2,num)));N=A&(num-1),仅以A为非负整数为例。
mysql的hash分区_MySQL中的分区(五)HASH分区相关推荐
- mysql获取当月最后一天_mysql中获取本月第一天、本月最后一天、上月第一天、上月最后一天
mysql获取当月最后一天_mysql中获取本月第一天.本月最后一天.上月第一天.上月最后一天等等 转自: https://blog.csdn.net/min996358312/article/det ...
- mysql创建分区是否存在_mysql中如何判断是否支持分区
mysql可以通过下面语句判断是否支持分区: SHOW VARIABLES LIKE '%partition%'; 如果输出: have_partitioning YES 表示支持分区. 或者通过 ...
- mysql 字符列做日期分区_mysql 根据日期字段做表分区
mysql 的表分区有几种类型, list, hash, range等, 今天我们介绍下日期分区, 假如与如下表: 新建mysql分区表CREATE TABLE core( core_id INT ...
- centos 调整home分区xfs_Linux中对lvm逻辑卷分区大小的调整教程(针对xfs与ext4不同文件系统)...
前言 当我们在安装系统的时候,由于没有合理分配分区空间,在后续维护过程中,发现有些分区空间不够使用,而有的分区空间却有很多剩余空间.如果这些分区在装系统的时候使用了lvm(前提是这些分区要是lvm逻辑 ...
- mysql btree检索策略_MySQL之Btree索引和HASH索引的区别以及索引优化策略
索引是帮助mysql获取数据的数据结构.最常见的索引是Btree索引和Hash索引. 不同的引擎对于索引有不同的支持:Innodb和MyISAM默认的索引是Btree索引:而Mermory默认的索引是 ...
- mysql普通索引命中_MySQL中因字段字符集不同导致索引不能命中的解决方法
什么是索引?为什么要建立索引? 索引用于快速找出在某个列中有一特定值的行,不使用索引,MySQL必须从第一条记录开始读完整个表,直到找出相关的行,表越大,查询数据所花费的时间就越多,如果表中查询的列有 ...
- mysql日期格式化季度_mysql中常用日期比较与计算函数
MySql中时间比较的实现 unix_timestamp() unix_timestamp 函数可以接受一个参数,也可以不使用参数. 它的返回值是一个无符号的整数.不使用参数,它返回自1970年1月1 ...
- mysql添加临时索引_mysql 中添加索引的三种方法
在mysql中有多种索引,有普通索引,全文索引,唯一索引,多列索引,小伙伴们可以通过不同的应用场景来进行索引的新建,在此列出三种新建索引的方法 mysql 中添加索引的三种方法 1.1 新建表中添加索 ...
- mysql sql 时间比较_mysql中sql语句进行日期比较
这里是一个使用日期函数的例子.下面的查询选择了所有记录,其date_col的值是在最后30天以内: mysql> SELECT something FROM table WHERE TO_DAY ...
最新文章
- C++ 11 中的POD
- 【译】 WebSocket 协议第六章——发送与接收消息(Sending and Receiving Data)
- android tv market,安卓市场TV版
- nginx+keepalived搭建主从负载均衡并迅速切换
- javascript模版引擎-tmpl的bug修复与性能优化
- 专业文化计算机艺考生,专业课和文化课都优秀?那艺考生的你不知道这个就损失大了...
- 你是否理解js的Object与Function与原型链
- 安装阿里Java代码规约插件
- 智能交通运输(包括TOCC)精华主题汇总
- openwrt ipv6上网配置过程
- win7下安装MQTT Paho客户端
- word打开文档很久很慢_Office软件打开速度慢怎么处理?Word打开很慢如何解决?...
- Chrome去除新标签页最近访问
- Notepad++ 7.6版本 安装hexeditor最新详细版本(小白版)
- switch条件语句与跳转语句(附分数分层案例)
- Bugku:杂项 小美的秘密part2
- CentOS7 系统安全加固实施方案介绍
- springcloudAlibaba设置allow-bean-definition-overriding=true不生效问题解决
- 个人网站开张两周年纪念
- 教你如何睡觉,一定要看!!!
热门文章
- 8 时间转指定时区的时间_Linux指定的时间运行自定义命令的两种方式
- mysql查询嵌套where_MySQL-10(where /from 嵌套查询)
- C#程序设计--入门到精通 学习记录(一) C# 与 .net平台
- Python操作excel文件根据某一字段将相同的类拆分
- Python中maketrans和translate方法
- Python面向对象之定制对象独有特征
- mysql 备库 hang住_mysql主键的缺少导致备库hang住
- C语言什么时候必须用到二级指针?(需要调用函数为一维空指针确定值的情况下,需要传入二维指针,也就是那个一维指针的指针)
- C语言malloc动态分配内存分配失败怎么办?exit(OVERFLOW);(include <cstdlib>)
- 图像处理中的“内插”是什么?插值、图像内插值、图像间插值、重取样(用已知数据来估计未知位置的数值的处理)(最近邻内插法、双线性内插)