目录

环境

文档用途

详细信息

环境

系统平台: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)相关推荐

  1. 信创环境下三个开源数据库:SQLite、MariaDB(MySQL)和postgreSQL(瀚高数据库免费版)基本操作

    在信创环境下,常用的免费数据库主要是:SQLite.MariaDB(MySQL)和postgreSQL(瀚高数据库免费版),可以在一些产品中内嵌使用. SQLite作为单文件数据库,不需要后台服务,预 ...

  2. mysql数据库迁移到瀚高数据库,包含数据迁移、sql语法、服务启动、部署、tomcat问题整理

    文章目录 1.数据库迁移 2.数据库设置主键自增 2.1 数据库字段问题 2.2 存在即更新 2.3 清空数据表 2.4 瀚高数据库查询过程中显示转换 2.5 mybatis插入一条数据返回自增的主键 ...

  3. MySQL 中 AES_DECRYPT 加密,如何在瀚高数据库中使用

    瀚高数据库 目录 环境 症状 问题原因 解决方案 环境 系统平台:银河麒麟R系(CPU龙芯)4,银河麒麟U系(CPU飞腾)4 版本:4.5.2,6.0 症状 MySQL替换为国产瀚高数据库时, AES ...

  4. 瀚高数据库和mysql区别,MySQL数据库迁移瀚高数据库

    1.瀚高数据库安装 下载Highgo Database安全版rpm包并上传至服务器,使用如下命令进行安装 rpm -ivh hgdb5.6.4-enterprise-rhel7.x-x86-64-20 ...

  5. MySQL数据库迁移瀚高数据库

    1.瀚高数据库安装 下载Highgo Database安全版rpm包并上传至服务器,使用如下命令进行安装 rpm -ivh hgdb5.6.4-enterprise-rhel7.x-x86-64-20 ...

  6. 瀚高数据库优化解决方案

    本文转自微信公众号"瀚高数据库售前团队"文章https://mp.weixin.qq.com/s/iYwAAc6HWPt2bJbCIbKKfg 声明: 本文章内容仅用于学习.交流, ...

  7. 瀚高数据库故障诊断指导方案

    作者:瀚高PG实验室 (Highgo PG Lab) 目录 环境 文档用途 详细信息 环境 系统平台:Linux x86 Red Hat Enterprise Linux 6,Linux x86 SL ...

  8. Oracle数据库中stragg()函数,在瀚高数据库中如何替换使用?

    瀚高数据库 目录 环境 文档用途 详细信息 环境 系统平台:Microsoft Windows (64-bit) 10 版本:6.0 文档用途 用于解决怎么在瀚高数据库中实现和Oracle数据库中st ...

  9. Windows系统部署瀚高数据库并在SuperMap iDesktop中使用

    目录 前言 一:Windows系统部署瀚高数据库 二:对数据库进行PostGIS扩展 三:SuperMap iDesktop中新建HighGoDB数据库型数据源 作者:kxj 前言    瀚高数据库是 ...

最新文章

  1. VS2005编译QT4.8.2
  2. Sean Lynch谈Facebook Claspin监控工具的由来
  3. 机器人学习--电子指南针定位导航
  4. linux创建指定大小的文件
  5. html5视差滚动效果,视差滚动效果
  6. 黑客专用Linux发行版Kali Linux发布滚动更新版2016.1
  7. Spark On YARN内存分配
  8. 推荐系统(6):推荐算法之基于内容的推荐算法
  9. 学习备忘英语单词转载
  10. boost斩波电路控制系统C语言,Boost升压斩波电路[精华]
  11. 开发部程序员绩效考核办法
  12. 7-1 电话聊天狂人 (25 分)
  13. 高通modem启动过程_高通8953启动流程【转】
  14. oracle ndb,NDB语法 - ivaneeo's blog - BlogJava
  15. 07-20210305在WIN10下通过USB口给华为海思Hi3516DV300刷机(鸿蒙系统)
  16. MySQL中的auto_increment
  17. html2canvas+canvas2image 做vue移动端页面海报
  18. elliptic-curve签名验证verify signature in EdDSA
  19. SQL存储过程与函数
  20. 7-2 然后是几点 (15 分) (C语言)

热门文章

  1. 数组(Arry)几个常用方法的详解
  2. druid.io剖析
  3. 万圣节 数据_万圣节最可怕的12种开发商恐惧
  4. 游戏行业的明星效应与伪公关事件
  5. 聊一聊前端性能优化 CRP
  6. 想提高团队技术,来试试这个套路! (作为个人提高的套路也行呢)
  7. 蚂蚁研究员玉伯:做一个简单自由有爱的技术人
  8. 天气学诊断实习四 计算垂直速度
  9. 微信小程序返回上一页 没有上一页的情况下返回首页
  10. 计算机邀请函操作,Word计算机二级MS office常考内容——用邮件合并技术制作邀请函...