mysql分区: 数据库把一个表分解成更小的部分,但是对于访问数据库的应用来说还是一个表。
优点:
a. 可以存储更多的数据
b. 优化查询,在特定情况下只需要扫描一个分区,在涉及sum()和count()时可以在各个分区并行处理
查看数据库是否支持分区
这里是yes 就是支持分区
分区的类型:
a. range分区: 基于一个给定的连续区间范围,把数据分配到不同的分区
b.list分区: 基于枚举出的值列表分区,range基于给定的连续区间范围分区
c.hash分区: 基于给定的分区个数,把数据分配到的不同分区
d.key分区: 类似于hash分区
** 无论mysql分区的哪种类型,要么分区的表上没有主键或者唯一键,要么分区表的主键或唯一键都必须包含分区键
插入的数据的id 小于10 插入p0分区
插入的数据的id 小于20 插入p1分区
插入的数据的id 其他值插入p3
*maxvalue代表最大的可能值
通过alter 增加分区
alter table mpartition add partition (partition p4 values less than (60)); range分区适用于一下两种情况1.删除过期数据 只需要
来删除p0分区中的数据2.经常运行包含分区键的查询 例如 插入id大于25的数据 mysql只会扫描特定的分区
插入的数据的id 是3,5,6会放入p0分区
插入的数据的id 是4 会放入p1分区
如果插入的值不再分区中,mysql将会报错
hash分区确保在预先确定个数的分区中尽可能的分布。
key分区类似与hash分区,hash可以自定义表达式分区,但是 key只能使用mysql服务器提供的hash函数
