关于mysql分区与未分区速度和带有主键表分区的问题
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于mysql分区与未分区速度和带有主键表分区的问题相关的知识,希望对你有一定的参考价值。
如果一张带有主键的表分区的话,分区字段必须是主键,我试了试网上的方法不行,并且我也不知道这个方法的原理是什么。。。不知道这个该怎么解决,这个是mysql的规定,那么像下面截图的这种情况该怎么分区?
截图:
2.分过区的表:只有一个date字段类型的字段,我现在插入了1000万的数据,分了4个分区,平均下来每个250万,然后再建立一张相同的表,数据也一模一样,但是没有分区。
我测试的意图是想看看查询的速度差距多大,刚测试的时候差距挺大的,但是当我给date字段加上一般索引搜索速度反而慢了一倍。两个表都加了索引,现在速度差不多了。。。为什么分区表加上索引反而慢了???请知道的大神帮小弟解惑解惑。。。
1)、与单个磁盘或文件系统分区相比,可以存储更多的数据。
2)、对于那些已经失去保存意义的数据,通常可以通过删除与那些数据有关的分区,很容易地删除那些数据。
3)、一些查询可以得到极大的优化,这主要是借助于满足一个给定WHERE语句的数据可以只保存在一个或多个分区内,这样在查找时就不用查找其他剩余的分区。因为分区可以在创建了分区表后进行修改,所以在第一次配置分区方案时还不曾这么做时,可以重新组织数据,来提高那些常用查询的效率。
4)、涉及到例如SUM()和COUNT()这样聚合函数的查询,可以很容易地进行并行处理。这种查询的一个简单例子如 “SELECT salesperson_id, COUNT (orders) as order_total FROM sales GROUP BY salesperson_id;”。通过“并行”,这意味着该查询可以在每个分区上同时进行,最终结果只需通过总计所有分区得到的结果。
5)、通过跨多个磁盘来分散数据查询,来获得更大的查询吞吐量。
这里有一篇文章分析的非常好,请参考:
http://www.cnblogs.com/acpp/archive/2010/08/09/1795464.html 参考技术A 分区查询速度较快
Mysql 8.0版本开始,不允许创建 MyISAM 分区表
从MySQL 8.0版本开始,就不允许创建 MyISAM 分区表了,只允许创建已经实现了本地分区策略的引擎。
到目前为止,只有InnoDB和NDB这两个引擎支持本地分区策略。
【1】实际测试
(1)数据库版本号
# 获取版本号 SELECT VERSION(); # 8.0.12
(2)键表InnoDB引擎
CREATE TABLE `t_innodb` ( `ftime` DATETIME NOT NULL, `c` INT(11) DEFAULT NULL, KEY (`ftime`) ) ENGINE=INNODB DEFAULT CHARSET=latin1 PARTITION BY RANGE (YEAR(ftime)) (PARTITION p_2017 VALUES LESS THAN (2017) ENGINE = INNODB, PARTITION p_2018 VALUES LESS THAN (2018) ENGINE = INNODB, PARTITION p_2019 VALUES LESS THAN (2019) ENGINE = INNODB, PARTITION p_others VALUES LESS THAN MAXVALUE ENGINE = INNODB);
创建成功。
(3)MyiSAM引擎
CREATE TABLE `t_myisam` ( `ftime` DATETIME NOT NULL, `c` INT(11) DEFAULT NULL, KEY (`ftime`) ) ENGINE=INNODB DEFAULT CHARSET=latin1 PARTITION BY RANGE (YEAR(ftime)) (PARTITION p_2017 VALUES LESS THAN (2017) ENGINE = MYISAM, PARTITION p_2018 VALUES LESS THAN (2018) ENGINE = MYISAM, PARTITION p_2019 VALUES LESS THAN (2019) ENGINE = MYISAM, PARTITION p_others VALUES LESS THAN MAXVALUE ENGINE = MYISAM);
创建失败:
Good Good Study, Day Day Up.
顺序 选择 循环 总结
以上是关于关于mysql分区与未分区速度和带有主键表分区的问题的主要内容,如果未能解决你的问题,请参考以下文章