#### 算法
**根据"字段内容"是否在 某个范围进行分区,通过预定义的范围的值来对数据进行分割.** 这种模式允许将数据划分不同范围。例如可以将一个表通过月份划分成若干个分区 .
#### 语法
~~~
create table p_range(
id int,
name varchar(32),
birthday date
)engine innodb charset utf8
partition by range (month(birthday))( //用month() 获得月份值
partition p_1 values less than (3),
partition p_2 values less than(6),
partition p_3 values less than(9),
partition p_4 values less than MAXVALUE
);
~~~
less than : 小于等于 ;
MAX VALUE : 可能的最大值 ;
**文件结构**
![](https://box.kancloud.cn/0f06f4ae62e3f4830aea69b1bd90fe93_861x263.png)
#### 测试
~~~
explain partitions select * from user where age > 20\G
~~~
结果:
~~~
id: 1
select_type: SIMPLE
table: user
partitions: p_3,p_4 //使用了分区,
type: range
possible_keys: age
key: age //给字段加索引效果更好
key_len: 2
ref: NULL
rows: 3
filtered: 100.00
Extra: Using index condition
~~~
- MySQL优化概述
- 存储引擎的选择
- innodb引擎
- myisam引擎
- memory引擎
- 查询需优化语句
- 通用查询日志
- 慢查询日志
- profile机制
- 索引
- 索引基本介绍
- 索引类型
- 索引管理语法
- 创建索引主要事项
- 执行计划
- 查看索引类型
- myisam索引数据结构
- innodb索引数据结构
- 索引覆盖
- 索引使用原则
- 列独立
- like查询
- 复合索引使用
- or运算都具有索引
- mysql智能选择
- 优化group by语句
- 前缀索引
- 全文索引
- 查询缓存
- 查询缓存操作
- 无缓存
- limit分页优化
- 分区
- 分区介绍
- list分区
- range分区
- hash分区
- key(键值)分区
- 分区管理
- 分表
- 分表介绍
- 水平分表
- 垂直分表
- MySQL锁机制
- 锁机制介绍
- 锁的几种形式
- 表锁操作
- 行锁操作
- 数据碎片与维护
- 范式
- 第一范式
- 第二范式
- 第三范式
- 反三范式
- 主从复制
- 介绍
- 读写分离