美文网首页
MYSQL数据库创建表分区

MYSQL数据库创建表分区

作者: 程序员的自我修养 | 来源:发表于2020-05-26 23:11 被阅读0次

MySQL数据库通过日期创建表分区,日期需要使用日期函数(年月日时分秒)

1.用日期创建分区事例

DROP TABLE IF EXISTS `t_tfm_city_trafficindex`;

CREATE TABLE `t_tfm_city_trafficindex` (

  `cityname` varchar(20) DEFAULT '' COMMENT '城市名称',

  `time` varchar(10) NOT NULL COMMENT '时间(HH24:mi)',

  `type` varchar(20) NOT NULL COMMENT '星期几',

  `grade` float(5,2) NOT NULL COMMENT '城市一般交通指数值(0-10)',

  `updatetime` datetime NOT NULL DEFAULT '0000-00-00 00:00:00' COMMENT '更新时间',

  PRIMARY KEY (`time`,`type`,`updatetime`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='城市7*24小时一般交通指数'

/*!50100 PARTITION BY RANGE (to_days(updatetime))

(PARTITION partition201607 VALUES LESS THAN (736542) ENGINE = InnoDB,

 PARTITION partition201608 VALUES LESS THAN (736573) ENGINE = InnoDB,

 PARTITION partition201609 VALUES LESS THAN (736603) ENGINE = InnoDB,

 PARTITION partition201610 VALUES LESS THAN (736634) ENGINE = InnoDB,

 PARTITION partition201611 VALUES LESS THAN (736664) ENGINE = InnoDB,

 PARTITION partition201612 VALUES LESS THAN (736695) ENGINE = InnoDB,

 PARTITION partition201701 VALUES LESS THAN (736726) ENGINE = InnoDB,

 PARTITION partition201702 VALUES LESS THAN (736754) ENGINE = InnoDB) */;

//其中736542为to_days('2016-08-01'),其他依次顺序排列。。。

2.分区函数

Mysql可用的分区函数

DAY()

DAYOFMONTH()

DAYOFWEEK()

DAYOFYEAR()

DATEDIFF()

EXTRACT()

HOUR()

MICROSECOND()

MINUTE()

MOD()

MONTH()

QUARTER()

SECOND()

TIME_TO_SEC()

TO_DAYS()

WEEKDAY()

YEAR()

YEARWEEK() 等

当然,还有FLOOR(),CEILING() 等,前提是使用这两个分区函数的分区健必须是整型。

要小心使用其中的一些函数,避免犯逻辑性的错误,引起全表扫描。

3.分区类型

   Range:基于一个连续区间的列值,把多行分配给分区;

   LIST:列值匹配一个离散集合;

   Hash:基于用户定义的表达式的返回值选择分区,表达式对要插入表中的列值进行计算。这个函数可以包含SQL中有效的,产生非负整

            数值的任何表达式。

   KEY:类似于HASH分区,区别在于KEY 分区的表达式可以是一列或多列,且MYSQL提供自身的HASH函数。

4.RANGE分区MAXVALUE值 及加分区测试

创建表 PRANGE,最后分区一个分区值是MAXVALUE

SELECT

     count(*) as total,

     user_name,

request_url,

DATE_FORMAT(create_time,'%Y-%m-%d') as days

FROM

     s_log_request_time

WHERE

     request_url IN (

          '/api/operation/publishRules/publishIndex',

          '/api/operation/skuListing/index',

          '/api/operation/skuListing/detail'

     )

group by user_name,request_url,days

相关文章

  • MySQL分区表

    确认mysql是否支持分区表 mysql分区表的特点 创建mysql数据表为hash表 常用mysql分区的类型 ...

  • Mysql学习——数据库基础操作(1)

    Mysql创建数据库Mysql删除数据库Mysql创建表Mysql删除表Mysql添加表数据Mysql修改表数据M...

  • MYSQL数据库创建表分区

    MySQL数据库通过日期创建表分区,日期需要使用日期函数(年月日时分秒) 1.用日期创建分区事例 DROP TAB...

  • Mysql 分区表删除

    分区表删除部分分区 使用场景:从 MySQL 5.1 开始,支持分区 创建日志表时建议使用分区方式 在上表的分区表...

  • MySQL的分区、分表、集群、优化

    MySQL的分区 MySQL分区表是在数据库层面,MySQL自己实现的分表功能,在很大程度上简化了分表的难度。物理...

  • SQL Server数据库分区表

    一、创建分区表: 1、先创建给分区表使用的分区目录:E:\TMS_DATA 2、创建数据库文件组:语法:alter...

  • hive基本语法

    DDL数据定义 创建数据库: 修改数据库: 显示数据库: 删除数据库 创建表 分区表 DML数据操作 查询

  • Mysql练习-数据表结构操作

    一、练习要求 ① 登录MySQL数据库② 创建数据库company③ 创建表offices④ 创建...

  • 实验楼MySQL记录(一)

    启动mysql: 登陆mysql 查看有哪些数据库 查看数据库中有那些表 mysql配置文件 创建数据库 创建数据...

  • Flink --通过讲mysql数据插入到iceberg

    1. 创建表 2.创建分区表 3. 插入数据 4. 将mysql 数据插入到iceberg 表中

网友评论

      本文标题:MYSQL数据库创建表分区

      本文链接:https://www.haomeiwen.com/subject/itluohtx.html