当我们数据量特别大时
这时我们要学到一个词汇叫『拆分』
mysql有一个功能叫做 分区:
1、把数据分段划分在多个位置存放,可以是同一块磁盘也可以是不同的机器
2、分区后表面上还是一张表,但数据散列到多个位置了
3、读写时还是表明不变,数据库自动去组织分区的数据
分区类型
mysql中的分区有:range、list、hash、key四种分区方法
我们介绍range方法,就是划分范围,比如我们按照id字段划分。
对已有表进行分区
然后可以查看一下此表存储的位置,可以使用如下SQL语句查看存储位置:
show VARIABLES like '%datadir%';
开始分表:
ALTER TABLE users PARTITION by RANGE(`id`)
(
PARTITION users_a VALUES less THAN(4),
PARTITION users_b VALUES less THAN(8),
PARTITION users_c VALUES less THAN(MAXVALUE)
);
说明:我们对users
表,按照id
字段划分范围。id小于4的一个分区,然后id小于8的一个分区,最后剩下的一个分区。