MySQL分区分库优化储存空间(mysql分区分库)
数据库储存的量越大,表的检索效率就越低,这时候我们就可以启用MySQL的分区功能,就是把表分割成多个部分,这样大大提高了检索效率和空间利用率。
考虑运用MySQL分区存储策略之前,首先要做清楚的是要非常清楚的分析表结构,比如对应数据表中的某个字段可以做分区,分区维度如何,又能够把表中记录数据按此字段有效的分割,还要考虑MySQL分区的存储类型。
MySQL支持的分区类型涵盖:range,list,hash,key和时间,其中range和list的分区定义形式类似,都会设置一定范围值,range只可以由字段值来分割,而list允许把多个值合在一起组成一个分区,两者适用于数字和字符。Hash可用于任何类型,所有记录均匀的划分到不同的分区中,而key也可以用于任何类型,但记录按照字段值范围排序后只会被放置到一个分区中,最后是时间分区。
例如:
假设需要对一个名为student的表分区,那么可以使用以下代码:
ALTER TABLE student
PARTITION BY RANGE (city) (
PARTITION p1 VALUES LESS THAN (‘bj’),
PARTITION p2 VALUES LESS THAN (‘sh’),
PARTITION p3 VALUES LESS THAN (‘gz’),
PARTITION p4 VALUES LESS THAN (MAXVALUE)
);
总体而言,MySQL分区技术是是一种储存机制,可以有效地整理数据,减少数据库访问和I/O,改善查询性能,提高系统运行效率,优化空间利用率,缩短查找查询时间,实现数据的更加有效的储存和管理。