一:概述  通过把表分成多几区间,每个区间存储符合特定表达式的数据(即在我们创建分区表时指定每个分区存储的条件例如:PARTITION p0 VALUES LESS THAN (100) 即p0区间存储小于100的数据)。

二:分区类型

即根据每个区间存储值的表达式不同,可分为如下几个类型,一般都是对数字类型或时间类型的数据进行分区。

2.1 RANGE分区 :即通过表达式 PARTITION p0 VALUES LESS THAN (100)  。即 less小于指定的值存储区间。

2.2 LIST 分区 :即通过表达式 PARTITION pNorth VALUES IN (3,5,6,9,17)  。即值在in括号里面的值存储区间。

2.3 HASH 分区 :即通过特定算法(hash)把指定的值放入不同区间。PARTITION BY HASH(id)  PARTITIONS 4。

2.4 KEY 分区: 和hash分区类似,但指定的列值必须是唯一值(即主键或 UNIQUE KEY),PARTITION BY KEY() PARTITIONS 2;

2.5COLUMNS 分区:

三:分区查询

语法:

SELECTselect_expr[, select_expr ...]

FROMtable_references[PARTITION partition_list] //指定分局

eg:select * from rc1 PARTITION(p0) ; //在标的引用后面加上PARTITION(p,...)函数,参数为表的分区名

备注:如果我们查询没有添加分区条件,默认是查询所有分区

四:RANGE分区

CREATE TABLE`tb_range` (-> `id` int(11) NOT NULL,-> `fname` varchar(30) DEFAULT NULL,-> `lname` varchar(30) DEFAULT NULL

->)-> PARTITION BYRANGE (id)-> (PARTITION p0 VALUES LESS THAN (6),-> PARTITION p1 VALUES LESS THAN (11),-> PARTITION p2 VALUESLESS THAN MAXVALUE ) ;

Query OK,0 rows affected (0.64sec)

mysql> insert into tb_range(id,fname,lname)values(1,'a1','b1'),(6,'a6','b6'),(10,'a10','b10'),(20,'a20','b20');

Query OK,4 rows affected (0.02sec)

Records:4 Duplicates: 0 Warnings: 0

View Code

查询:

mysql> select * fromtb_range partition(p0); //查询p0区的数据+----+-------+-------+

| id | fname | lname |

+----+-------+-------+

| 1 | a1 | b1 |

+----+-------+-------+

1 row in set (0.00sec)

mysql> select * fromtb_range partition(p2);//查询p2区的数据+----+-------+-------+

| id | fname | lname |

+----+-------+-------+

| 20 | a20 | b20 |

+----+-------+-------+

1 row in set (0.00sec)

mysql> select * fromtb_range partition(p1);//查询p1区的数据+----+-------+-------+

| id | fname | lname |

+----+-------+-------+

| 6 | a6 | b6 |

| 10 | a10 | b10 |

+----+-------+-------+

2 rows in set (0.00 sec)

五:LIST 分区

mysql> CREATE TABLE`tb_list` (-> `id` int(11) NOT NULL,-> `fname` varchar(30) DEFAULT NULL,-> `lname` varchar(30) DEFAULT NULL,-> `class_id` int(11) NOT NULL

->)-> PARTITION BYLIST(class_id) (-> PARTITION pNorth VALUES IN (1,3),-> PARTITION pEast VALUES IN (2,4)->);

Query OK,0 rows affected (0.47sec)

mysql> insert into tb_list(id,fname,lname,class_id)values(1,'a1','b1',1),(6,'a6','b6',2),(10,'a10','b10',3),(20,'a20','b20',4);

Query OK,4 rows affected (0.02 sec)

View Code

查询:

mysql> select * fromtb_list partition(pEast);+----+-------+-------+----------+

| id | fname | lname | class_id |

+----+-------+-------+----------+

| 6 | a6 | b6 | 2 |

| 20 | a20 | b20 | 4 |

+----+-------+-------+----------+

2 rows in set (0.00sec)

mysql> select * fromtb_list partition(pNorth);+----+-------+-------+----------+

| id | fname | lname | class_id |

+----+-------+-------+----------+

| 1 | a1 | b1 | 1 |

| 10 | a10 | b10 | 3 |

+----+-------+-------+----------+

2 rows in set (0.00 sec)

备注:list方式分区in()参数可以无需

如果插入不存在的分区,数据库会报错

六:HASH 分区

6.1hash散列算法

mysql> CREATE TABLEtb_hash (-> id INT NOT NULL,-> fname VARCHAR(30),-> lname VARCHAR(30)->)-> PARTITION BYHASH(id)-> PARTITIONS 3;

Query OK,0 rows affected (0.56sec)

mysql> insert into tb_hash(id,fname,lname)values(1,'a1','b1'),(6,'a6','b6'),(10,'a10','b10'),(20,'a20','b20');

Query OK,4 rows affected (0.03sec)

Records:4 Duplicates: 0 Warnings: 0

View Code

查询:默认分区为p0,p1....

mysql> select * fromtb_hash partition(p0);+----+-------+-------+

| id | fname | lname |

+----+-------+-------+

| 6 | a6 | b6 |

+----+-------+-------+

1 row in set (0.00sec)

mysql> select * fromtb_hash partition(p1);+----+-------+-------+

| id | fname | lname |

+----+-------+-------+

| 1 | a1 | b1 |

| 10 | a10 | b10 |

+----+-------+-------+

2 rows in set (0.00sec)

mysql> select * fromtb_hash partition(p2);+----+-------+-------+

| id | fname | lname |

+----+-------+-------+

| 20 | a20 | b20 |

+----+-------+-------+

1 row in set (0.01 sec)

mysql> select * from tb_hash partition(p3);

ERROR 1735 (HY000): Unknown partition 'p3' in table 'tb_hash'

6.2 hash线性算法

mysql> CREATE TABLEtb_hash_linear (-> id INT NOT NULL,-> fname VARCHAR(30),-> lname VARCHAR(30)->)-> PARTITION BYLINEAR HASH(id)-> PARTITIONS 3;

Query OK,0 rows affected (0.58 sec)

View Code

七:KEY 分区

mysql> CREATE TABLEtb_key (-> id INT NOT NULL PRIMARY KEY,-> name VARCHAR(20)->)-> PARTITION BY KEY()-> PARTITIONS 2;

Query OK,0 rows affected (0.44 sec)

注意:我们数据库目录存放着我们所有数据库的信息,包括数据库中表的信息和表中数据。其中每个数据库会在该目录下创建一个以数据库名命名文件夹,该文件夹下主要包含.frm和.idb结尾的文件,其中.idb(一个表对应一个)文件存放着每个表的数据。如果我们的表是分区表则一个表对用多个.idb文件。分析下图箭头

有图可知:

数据库目录 : /var/lib/mysql

我查看的数据库为:test3

普通表一个.frm和一个.idb 而分区表一个.frm和多个.idb文件

mysql查分区数据_mysql之数据分区相关推荐

  1. mysql维护分区脚本_mysql 5.6 分区维护

    本人英语不好,如下翻译有不当之处敬请纠正: 表和分区的一些维护任务,适用于在mysql5.6的分区表上用sql语句进行. 维护分区表,可以使用支持分区表的语句:CHECK TABLE, OPTIMIZ ...

  2. mysql insert id菜鸟_MySQL 插入数据

    MySQL 插入数据 MySQL 表中使用INSERT INTOSQL语句来插入数据. 你可以通过 mysql> 命令提示窗口中向数据表中插入数据,或者通过PHP脚本来插入数据. 语法 以下为向 ...

  3. mysql创建数据表示例_Mysql创建数据表的方法介绍(附示例)

    本篇文章给大家带来的内容是关于Mysql创建数据表的方法介绍(附示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 数据表是数据库最重要的组成部分之一,是其他对象的基础.如果我们的 ...

  4. mysql 查询姓王_mysql常用数据操作之查

    将数据库查询单独开来是因为使用最多,也是技巧最多,同时面试最容易问的部分 简单查询 select * from table_name; select name,age from table_name; ...

  5. mysql数据库删除列数据_MySQL数据库-数据表、以及列的增删改查

    1.创建一个表 CREATE(创建) TABLE(表) ENGINE(引擎) ENGINE=INNODB(引擎)还有很多类引擎,这里只是简单的提一下INNODB引擎,INNODB引擎支持事务(回滚), ...

  6. mysql查指定日期后的数据_mysql查询指定日期数据

    查询 今天 select * from 表名 where to_days(时间字段名) = to_days(now()); 昨天 SELECT * FROM 表名 WHERE TO_DAYS( NOW ...

  7. mysql 交换分区吗_MySQL分区表——交换分区

    从MySQL 5.6开始,支持分区交换.就是将一个分区表中的一个分区和一个普通表中的数据互换.一.实现交换分区的基本语法:ALTER TABLEptEXCHANGE PARTITIONpWITH TA ...

  8. mysql创建表参数_MySQL创建数据表(CREATE TABLE语句)

    在创建数据库之后,接下来就要在数据库中创建数据表.所谓创建数据表,指的是在已经创建的数据库中建立新表. 创建数据表的过程是规定数据列的属性的过程,同时也是实施数据完整性(包括实体完整性.引用完整性和域 ...

  9. mysql创建销售表_MySQL创建数据表(CREATE TABLE语句)

    在创建数据库之后,接下来就要在数据库中创建数据表.所谓创建数据表,指的是在已经创建的数据库中建立新表. 创建数据表的过程是规定数据列的属性的过程,同时也是实施数据完整性(包括实体完整性.引用完整性和域 ...

最新文章

  1. AI开发者大会之计算机视觉技术实践与应用:2020年7月3日《如何利用计算机视觉增加便利店连锁每日销售额》、《基于图像 / 视频的人脸和人体分析基础技术及其应用介绍》
  2. cordova打包安卓app
  3. java -jar 和 java -cp用法
  4. MFC 网络编程小结
  5. MessageBox、::MessageBox 、AfxMessageBox三者的区别
  6. 求一个数字是几位数(简便)
  7. android webview 长按菜单拦截,javascript-在Android上长按时禁用上下文菜单
  8. 神舟笔记本风扇控制软件_十代酷睿+RTX2070加持 高性能游戏本首选神舟战神G9CU7PK...
  9. 在生产服务器上要注意dbgsvc.exe
  10. ArcPy处理土地利用类型数据
  11. SSM : 环境搭建
  12. Python 根据百度 API 获得经纬度,根据经纬度计算城市间距离
  13. linux-推荐两款好用的录屏软件
  14. php中字符串与数组的相互转化explode(separator,$str)与implode(separator,$arr)
  15. “以图搜图”的奇葩用途 | 深度
  16. win7桌面背景_win7桌面背景怎么改?
  17. txt文件内容导入mysql数据库中_将txt文件导入mysql数据库
  18. 【JS】用JS发送电子邮件
  19. get查询IP PHP源码,ip归属地查询代码
  20. 《一封来自姐姐的信》

热门文章

  1. web前端开发人员要求,css设置背景图片自适应
  2. 用Python爬取网易云热门评论(亲测有效)
  3. 3点内容介绍什么是物联网模组
  4. Windows11 Windows安全中心无法打开 Windows Defender无法打开
  5. DTM使用途中的bug记录
  6. golang 实现数据结构-顺序栈
  7. ubuntu 16.04 无法连接wifi
  8. 小程序制作宋词欣赏海报
  9. 交换机的几种配置方法
  10. 计算机软考答题卡填涂格式,全国计算机软考网络工程师填涂答题卡须知