mysql 给分区表增加分区_详解mysql分区实验测试--非分区表与分区表的性能对比...

概述

前面已经介绍了mysql一些分区内容,所以下面主要简单做个实验,然后看下分区表有什么优势。


1、环境准备

1.1、创建如下分区表

CREATE TABLE part_tab( c1 int default NULL,c2 varchar(30) default NULL,c3 date default NULL) engine=myisamPARTITION BY RANGE (year(c3)) (PARTITION p0 VALUES LESS THAN (1995),PARTITION p1 VALUES LESS THAN (1996) , PARTITION p2 VALUES LESS THAN (1997) ,PARTITION p3 VALUES LESS THAN (1998) , PARTITION p4 VALUES LESS THAN (1999) ,PARTITION p5 VALUES LESS THAN (2000) , PARTITION p6 VALUES LESS THAN (2001) ,PARTITION p7 VALUES LESS THAN (2002) , PARTITION p8 VALUES LESS THAN (2003) ,PARTITION p9 VALUES LESS THAN (2004) , PARTITION p10 VALUES LESS THAN (2010),PARTITION p11 VALUES LESS THAN MAXVALUE );
69355dfe8f6b2d39d2b2cf8c16fecb5e.png

1.2、创建一个不分区的表

create table no_part_tab(c1 int(11) default NULL,c2 varchar(30) default NULL,c3 date default NULL) engine=myisam;
fc6b90306411b6ce06d333e074bcb917.png

2、准备数据

2.1、创建一个生成1000000行数据的存储过程:

delimiter //CREATE PROCEDURE load_part_tab()begindeclare v int default 0; while v < 1000000 do insert into part_tab values (v,'testing partitions',adddate('1995-01-01',(rand(v)*36520) mod 3652)); set v = v + 1; end while; end //
1b362a9f9e62bd2a85871b51d1e76496.png

2.2、调用存储过程,生成数据(本来想1千万的,这数据库性能比较差,所以改成100万)

mysql> delimiter ;mysql> call load_part_tab();mysql> insert into no_part_tab select * from part_tab;
7f29863d4ac4dba77286d544fd548d90.png

3、开始测试

mysql> select count(*) from no_part_tab where c3 > date '1995-01-01' and c3 < date '1995-12-31';mysql> select count(*) from part_tab where c3 > date '1995-01-01' and c3 < date '1995-12-31';

因为数据量不是特别大,所以可以看到速度有一定下降,但差距不是很明显,下面看一下查询计划。

31755df4c84a988bbd2766ea3159835f.png

4、查看执行计划

mysql> explain select count(*) from no_part_tab where c3 > date '1995-01-01' and c3 < date '1995-12-31'G;mysql> explain partitions select count(*) from part_tab where c3 > date '1995-01-01' and c3 < date '1995-12-31'G;
59ff206e8dfeee48e0a0394ac9e43f05.png
b2d1ca82933ff3d1406ddc841a718c6b.png

到这里关于分区的实验就做完了,大家有空也可以自己测试一下,把数据量提上去看看,后面会分享更多devops和DBA方面的内容,感兴趣的朋友可以关注下!

8ee3b2f8b031b3225039a00e0166e840.png
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值