mysql分区实践

博客围绕MySQL表分区展开,虽未给出具体内容,但可知核心聚焦于数据库MySQL的表分区技术,这在数据库管理中能提升性能、便于数据管理等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

MYSQL分区使用没有oracle这么强大,注意点有:
1.一般使用RANGE方式分区,HASH,LIST分区基本不考虑;
2.RANGE分区只能使用在date 或 datetime的列上;
3.分区列必须和主键组成复合主键;
一:创建分区表:
CREATE TABLE `fms_t_fl_info` (
  `ID` int(32) unsigned NOT NULL AUTO_INCREMENT COMMENT 'ID',
  `SOBT` datetime NOT NULL COMMENT '(STOD)计起时间',
  PRIMARY KEY (`ID`, `SOBT`)
)
PARTITION BY RANGE (TO_DAYS(`SOBT`))
(
partition p0 values less than (TO_DAYS('20150602')),
partition p1 values less than (TO_DAYS('20150603')),
PARTITION p3 VALUES LESS THAN MAXVALUE
);
二: 追加分区表:
ALTER TABLE `fms_t_fl_info` ADD PARTITION (PARTITION p4 VALUES LESS THAN (TO_DAYS('20150604'));
三:删除分区:
ALERT TABLE users DROP PARTITION p3;
注:对于追加新的分区时,我们最好使用以下步骤:把p3分区的数据导出,删除p3分区,然后在追加新的分区,这样可以使oracle中索引不失效,mysql中我没有查到有local index的说法,估计只有一种全局索引可用;
 
四:几种获取MySQL分区表信息的常用方法

  1. SHOW CREATE TABLE
    可以查看创建分区表的CREATE语句

  2.  SHOW TABLE STATUS    eg: SHOW TABLE STATUS where name='fms_t_fl_info';
    可以查看表是否为分区表

  3.  查看INFORMATION_SCHEMA.PARTITIONS表 
    可以查看表具有哪几个分区、分区的方法、分区中数据的记录数等重要信息 

  4.  EXPLAIN PARTITIONS SELECT  eg:explain partitions select * from fms_t_fl_info where sobt=STR_TO_DATE('20150602120000','%Y%m%d%H%i%s');
    查看select语句怎样使用分区 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

窦再兴

你的鼓励是我最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值