关于mysql分区键
使用mysql存储数据时,如果数据量特别大,会导致查询变得很慢甚至查不出来(7亿数据就查不出了),如果不使用其他中间件的话,可以为表设置分区键,前提是需要表中有时间字段。
分区键与索引的区别
-
分区键
- 是将一张逻辑表按规则拆分为多个物理存储单元(分区),每个分区独立存储数据。
- 目的是提升查询效率(减少扫描范围)、简化维护(如按时间归档旧分区)。
-
索引
- 是一种数据结构(如B+树、哈希),用于快速定位数据。
- 目的是加速查询,但不会改变数据的物理存储方式。
都有哪些分区键类型
按月
PARTITION BY RANGE(MONTH(‘create_time‘)*100+DAY('create_time'))
按年
PARTITION BY RANGE(YEAR(date))
按枚举
PARTITION BY LIST(category) VALUES IN('A','B')
按KEY分区
PARTITION BY KEY(id) PARTITIONS 3
NULL值处理:所有分区类型均将NULL视为最小值,RANGE分区会分配到第一个分区。