mysql partition 语法,MySQL与瀚高数据库的范围分区的语法及实例(APP)
目录
环境
文档用途
详细信息
环境
系统平台:Microsoft Windows (64-bit) 10
版本:5.6.4
文档用途
当表中的数据量不断增大,查询数据的速度就会变慢,应用程序的性能就会下降,这时就应该考虑对表进行分区。
表进行分区后,逻辑上表仍然是一张完整的表,只是将表中的数据分类存放到多个表空间的物理文件上,
这样查询数据时,不至于每次都扫描整张表。
分区类型分为范围分区(range partition)、列表分区(list partition)、哈希分区(hash partition)等。
本次主要介绍MySQL和瀚高数据库的范围分区。
MySQL的范围分区:
含义:基于属于一个给定连续区间的列值,把多行分配给分区。主键、约束、索引在分区表中创建。
关键字:RANGE、VALUES LESS THAN
RANGE又可分为原生RANGE和RANGE COLUMNS。
1) 对于原生RANGE分区,分区字段必须是整型或者转换为整型,如果分区字段是日期类型的字段,那么就必须将日期类型的字段转换成整型类型。对于日期类型的转换,优化器只支持year(),to_days,to_seconds,unix_timestamp()函数的转换,其他的并不支持,也就是说,在按日期字段分区的时候,如果不是使用上述几个函数转换的,查询优化器将无法对相关查询进行优化。
2) 对于RANGE COLUMNS分区,不可以使用表达式,只能使用列名;接受一个或多个字段的列表;分区列是不限制于数字列的;字符串、DATE和DATETIME列也可以使用在分区列。
注:分区字段必须包含在主键内
语法:
原生RANGE分区语法:
CREATE TABLE table_name(column_name data_type)
PARTITION BY RANGE(整型column_list|整型转换函数(column_list)) (
PARTITION partition_name VALUES LESS THAN (value_list)[,
PARTITION partition_name VALUES LESS THAN (value_list)][,
...]
)
column_list:
column_name[, column_name][, ...]
value_list:
value[, value][, ...]
column_list是一个或多个列名, value_list是和column_list相对应的一个或多个值
RANGE COLUMNS分区语法:
CREATE TABLE table_name(column_name data_type)
PARTITION BY RANGE COLUMNS(column_list) (
PARTITION partition_name VALUES LESS THAN (value_list)[,
PARTITION partition_name VALUES LESS THAN (value_list)][,
...]
)
column_list:
column_name[, column_name][, ...]
value_list:
value[, value][, ...] column_list是一个或多个列名, value_list是和column_list相对应的一个或多个值
注:在value_list中有一个最大值MAXVALUE,可以创建MAXVALUE的分区,存储超出范围的数据
删除分区语法:
ALTER TABLE table_name DROP PARTITION partition_name;
瀚高数据库的范围分区:
含义:支持单列、多列分区,例如:RANGE(x,y)
关键字:RANGE、FOR VALUES FROM(……) TO(……)
注:主键、约束、索引等不能在分区表中创建,目前只能在各个分区中创建。分区表只是一个表结构。
语法:
-- 主表
CREATE TABLE table_name ( column_name data_type )
PARTITION BY RANGE ( { column_name } [, ... ] )
-- 子表
CREATE TABLE table_name
PARTITION OF parent_table
FOR VALUES
FROM ( { numeric_literal | string_literal | TRUE | FALSE | MINVALUE | MAXVALUE } [, ...] )
TO ( { numeric_literal | string_literal | TRUE | FALSE | MINVALUE | MAXVALUE } [, ...] )
注:MINVALUE是最小值,MAXVALUE是最大值,为了防止插入范围以外的数据时报错,可以创建两个分区,
分别是MINVALUE和MAXVALUE的分区。分区字段的值不能为NULL。
删除分区语法:
-- 把分区修改成普通表
ALTER TABLE table_name DETACH PARTITION partition_name;
-- 删除分区 DROP TABLE partition_name;
详细信息
下面通过实例进行详细说明:
MySQL的范围分区实例:
测试环境:Win10+MySQL5.7
1. 原生RANGE分区实例
1) 使用整型字段score作为分区key
create table student(
sid integer auto_increment,
sname varchar(20),
score integer,
birthday DATETIME,
ssex varchar(10),
primary key(sid,score) -- score是分区字段,必须作为主键
)
partition by range(score)(
partition p0 values less than(10),-- 分区p0
partition p1 values less than(20),-- 分区p1
partition p2 values less than(30),-- 分区p2
partition p3 values less than(40),-- 分区p3
partition p4 values less than(50),-- 分区p4
partition p5 values less than(60),-- 分区p5
partition p6 values less than(70),-- 分区p6
partition p7 values less than(80) -- 分区p7 );
标签:name,column,APP,partition,list,RANGE,实例,MySQL,分区
来源: https://blog.csdn.net/pg_hgdb/article/details/110222928
mysql partition 语法,MySQL与瀚高数据库的范围分区的语法及实例(APP)相关推荐
- 信创环境下三个开源数据库:SQLite、MariaDB(MySQL)和postgreSQL(瀚高数据库免费版)基本操作
在信创环境下,常用的免费数据库主要是:SQLite.MariaDB(MySQL)和postgreSQL(瀚高数据库免费版),可以在一些产品中内嵌使用. SQLite作为单文件数据库,不需要后台服务,预 ...
- mysql数据库迁移到瀚高数据库,包含数据迁移、sql语法、服务启动、部署、tomcat问题整理
文章目录 1.数据库迁移 2.数据库设置主键自增 2.1 数据库字段问题 2.2 存在即更新 2.3 清空数据表 2.4 瀚高数据库查询过程中显示转换 2.5 mybatis插入一条数据返回自增的主键 ...
- MySQL 中 AES_DECRYPT 加密,如何在瀚高数据库中使用
瀚高数据库 目录 环境 症状 问题原因 解决方案 环境 系统平台:银河麒麟R系(CPU龙芯)4,银河麒麟U系(CPU飞腾)4 版本:4.5.2,6.0 症状 MySQL替换为国产瀚高数据库时, AES ...
- 瀚高数据库和mysql区别,MySQL数据库迁移瀚高数据库
1.瀚高数据库安装 下载Highgo Database安全版rpm包并上传至服务器,使用如下命令进行安装 rpm -ivh hgdb5.6.4-enterprise-rhel7.x-x86-64-20 ...
- MySQL数据库迁移瀚高数据库
1.瀚高数据库安装 下载Highgo Database安全版rpm包并上传至服务器,使用如下命令进行安装 rpm -ivh hgdb5.6.4-enterprise-rhel7.x-x86-64-20 ...
- 瀚高数据库优化解决方案
本文转自微信公众号"瀚高数据库售前团队"文章https://mp.weixin.qq.com/s/iYwAAc6HWPt2bJbCIbKKfg 声明: 本文章内容仅用于学习.交流, ...
- 瀚高数据库故障诊断指导方案
作者:瀚高PG实验室 (Highgo PG Lab) 目录 环境 文档用途 详细信息 环境 系统平台:Linux x86 Red Hat Enterprise Linux 6,Linux x86 SL ...
- Oracle数据库中stragg()函数,在瀚高数据库中如何替换使用?
瀚高数据库 目录 环境 文档用途 详细信息 环境 系统平台:Microsoft Windows (64-bit) 10 版本:6.0 文档用途 用于解决怎么在瀚高数据库中实现和Oracle数据库中st ...
- Windows系统部署瀚高数据库并在SuperMap iDesktop中使用
目录 前言 一:Windows系统部署瀚高数据库 二:对数据库进行PostGIS扩展 三:SuperMap iDesktop中新建HighGoDB数据库型数据源 作者:kxj 前言 瀚高数据库是 ...
最新文章
- VS2005编译QT4.8.2
- Sean Lynch谈Facebook Claspin监控工具的由来
- 机器人学习--电子指南针定位导航
- linux创建指定大小的文件
- html5视差滚动效果,视差滚动效果
- 黑客专用Linux发行版Kali Linux发布滚动更新版2016.1
- Spark On YARN内存分配
- 推荐系统(6):推荐算法之基于内容的推荐算法
- 学习备忘英语单词转载
- boost斩波电路控制系统C语言,Boost升压斩波电路[精华]
- 开发部程序员绩效考核办法
- 7-1 电话聊天狂人 (25 分)
- 高通modem启动过程_高通8953启动流程【转】
- oracle ndb,NDB语法 - ivaneeo's blog - BlogJava
- 07-20210305在WIN10下通过USB口给华为海思Hi3516DV300刷机(鸿蒙系统)
- MySQL中的auto_increment
- html2canvas+canvas2image 做vue移动端页面海报
- elliptic-curve签名验证verify signature in EdDSA
- SQL存储过程与函数
- 7-2 然后是几点 (15 分) (C语言)