MySQL中的分区(五)HASH分区
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了MySQL中的分区(五)HASH分区,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1804字,纯文字阅读大概需要3分钟。
内容图文
![MySQL中的分区(五)HASH分区](/upload/InfoBanner/zyjiaocheng/527/4dfc84b1c2ae41fb9550701d55e8393c.jpg)
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分区
标签:tab image int 应用 col 一个 val pow 原来
本文系统来源:https://www.cnblogs.com/kate7/p/13390371.html
内容总结
以上是互联网集市为您收集整理的MySQL中的分区(五)HASH分区全部内容,希望文章能够帮你解决MySQL中的分区(五)HASH分区所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。