mysql 分区表测试_MYSQL表分区测试

参考:https://blog.csdn.net/fengnp/article/details/81239286

-- 1. 创建分区表

CREATE TABLE part_tab(

c1 INT DEFAULT NULL,

c2 VARCHAR(30) DEFAULT NULL,

c3 DATE NOT NULL

) PARTITION 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)

);

-- 2. 创建不分区表

CREATE TABLE no_part_tab(

c1 INT DEFAULT NULL,

c2 VARCHAR(30) DEFAULT NULL,

c3 DATE NOT NULL

);

-- 3. 查询

SELECT * FROM part_tab;

SELECT * FROM no_part_tab;

-- 4. 存储过程插入数据

DROP PROCEDURE IF EXISTS load_part_tab;

DELIMITER //

CREATE PROCEDURE load_part_tab()

BEGIN

DECLARE v INT DEFAULT 0;

WHILE v < 8000000

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;

//

CALL load_part_tab;

INSERT INTO no_part_tab SELECT * FROM part_tab;

-- 5. 测试查询效率

SELECT COUNT(*) FROM part_tab       WHERE c3 > DATE '1995-01-01'AND c3 < DATE '1995-12-31';

SELECT COUNT(*) FROM no_part_tab WHERE c3 > DATE '1995-01-01'AND c3 < DATE '1995-12-31';

-- 6. 通过explain语句来分析执行情况

EXPLAIN SELECT COUNT(*) FROM part_tab       WHERE c3 > DATE '1995-01-01'AND c3 < DATE '1995-12-31';

EXPLAIN SELECT COUNT(*) FROM no_part_tab WHERE c3 > DATE '1995-01-01'AND c3 < DATE '1995-12-31';

转载于:https://my.oschina.net/u/2559275/blog/3068360

点赞

收藏

分享

文章举报

bd90af7f215e8d9cf5ed55e394767c8a.gif

068be7e19a8fd7ea1cc73db7ddbb42c1.png

chizhi9661

发布了0 篇原创文章 · 获赞 0 · 访问量 232

私信

关注

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值