ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、视频、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
#### 算法 **根据"字段内容"是否在 某个范围进行分区,通过预定义的范围的值来对数据进行分割.** 这种模式允许将数据划分不同范围。例如可以将一个表通过月份划分成若干个分区 . #### 语法 ~~~ 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 ~~~