加入收藏 | 设为首页 | 会员中心 | 我要投稿 聊城站长网 (https://www.0635zz.com/)- 智能语音交互、行业智能、AI应用、云计算、5G!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

mysql 数据库分区与测试

发布时间:2023-09-21 15:43:42 所属栏目:MySql教程 来源:
导读:mysql 数据库分区及测试

1、 测试数据库是否支持分区

mysql 可以通过下面语句判断是否支持分区:

SHOW VARIABLES LIKE '%partition%';

如果输出:have_partitioning YES 表示支持分区。
mysql 数据库分区及测试
 
1、 测试数据库是否支持分区
 
mysql 可以通过下面语句判断是否支持分区:
 
SHOW VARIABLES LIKE '%partition%';
 
如果输出:have_partitioning   YES 表示支持分区。
 
或者通过:SHOW PLUGINS;
 
显示所有插件,如果有 partition ACTIVE STORAGE ENGINE GPL 插件则表明支持分区
 
2、 创建测试表格
 
3、 将原表格数据复制到测试的表格
 
Insert into table_test select * from table
 
4、 对测试表格进行分区
 
alter table ta_monitor _history_test partition by RANGE (to_days(monitor_time))  
 
(PARTITION p0 VALUES LESS THAN (to_days('2018-01-01')),
 
PARTITION p1 VALUES LESS THAN (to_days('2018-03-01')) , PARTITION p2 VALUES LESS THAN (to_days('2018-05-01')) ,
 
PARTITION p3 VALUES LESS THAN (to_days('2018-06-01')) , PARTITION p4 VALUES LESS THAN (to_days('2018-07-01')) ,
 
PARTITION p5 VALUES LESS THAN (to_days('2018-08-01')) , PARTITION p6 VALUES LESS THAN (to_days('2018-09-01')) ,
 
PARTITION p7 VALUES LESS THAN (to_days('2018-10-01')) , PARTITION p8 VALUES LESS THAN (to_days('2018-11-01')) ,
 
PARTITION p9 VALUES LESS THAN (to_days('2018-12-01')) , PARTITION p10 VALUES LESS THAN (to_days('2019-01-01')),
 
PARTITION p11 VALUES LESS THAN (to_days('2019-02-01')), PARTITION P12 VALUES LESS THAN (to_days('2019-03-01')),
 
PARTITION P13 VALUES LESS THAN (to_days('2019-04-01')), PARTITION P14 VALUES LESS THAN (to_days('2019-05-01')),
 
PARTITION P15 VALUES LESS THAN (to_days('2019-06-01')), PARTITION P16 VALUES LESS THAN (to_days('2019-07-01')),
 
PARTITION P17 VALUES LESS THAN (to_days('2019-08-01')), PARTITION P18 VALUES LESS THAN (to_days('2019-09-01')),
 
PARTITION P19 VALUES LESS THAN (to_days('2019-10-01')), PARTITION P20 VALUES LESS THAN (to_days('2019-11-01')),
 
PARTITION P21 VALUES LESS THAN (to_days('2019-12-01')), PARTITION P22 VALUES LESS THAN (to_days('2020-01-01')),
 
PARTITION P23 VALUES LESS THAN (to_days('2020-02-01')), PARTITION P24 VALUES LESS THAN (to_days('2020-03-01')),
 
PARTITION P25 VALUES LESS THAN MAXVALUE );
 
5、 查看分区
 
SELECT
 
partition_name part,
 
partition_expression expr,
 
partition_description descr,
 
table_rows
 
FROM information_schema.partitions WHERE
 
table_schema = SCHEMA()
 
AND table_name='ta_monitor_parameter_history';
 
6、 测试分区
 
EXPLAIN SELECT
 
  *
 
FROM
 
  `ta_monitor _history`
 
WHERE monitor_time > '2018-07-01 01:00:00'
 
  AND monitor_time< '2018-07-19 00:00:00';

  EXPLAIN SELECT
 
  *
 
FROM
 
  `ta_monitorr_history_test`
 
WHERE monitor_time > '2018-07-01 01:00:00'
 
  AND monitor_time< '2018-07-19 00:00:00';
 
Rows 显示遍历了多少行。
 
7、 重新定义 range 分区表:
 
Alter table emp partitionbyrange(salary)
 
(partition p1 values less than (2000),
 
partition p2 values less than (4000)); ---- 不会丢失数据
 
8、删除表的所有分区:
 
Alter table emp removepartitioning;-- 不会丢失数据
 
9、可以查看创建分区表的 create 语句
 
show create table 表名
 
10、增加分区
 
ALTER TABLE ta_monitor_parameter_history
 
ADD PARTITION (PARTITION p20200401 VALUES LESS THAN (TO_DAYS('2020-04-01')));
 
可能出现的问题:
 
a、如果创建分区表时,使用了 MAXVALUE,形如:
 
PARTITION pmax VALUES LESS MAXVALUE,那么新增分区时会报错,类似如下:
 
MAXVALUE can only be used in last partition definition
 
解决办法:先删除最大分区,之后再添加
 
删除某一分区:ALTER TABLE  ta_monitor_parameter_history  DROP PARTITION p25;
 
 b、VALUES LESS THAN value must be strictly increasing for each partition(问题:添加的时间小于已经存在的最大时间)
 
根据   SELECT TO_DAYS ('2019-01-01'); 查看距离 1997 年 10 月 7 号之间的天数。
 
 

(编辑:聊城站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章