MySQL数据库分区
工具/原料
MySQL
MySQL数据库分区
1、在数据量非常大(500w左右的)的情况下,MySQL自身提供一种分区的机制,可以按照一定的分区算法(list、Range、hash、key)将一种表里面的数据保存在不同的分区(磁盘上的空间)里面。
2、create table emp(id int,name varchar(32),store_id int)partition by list(store_id)(partition p_north values in (1,4,5,6,17,18),partition p_east values in(2,7,9,10,11,13),partition p_south values in(3,12,19,20),partition p_west values in(8,14,15,16));insert into emp values(1,’asion’,4),(2,’bill’,15);# explain partitions select * from emp where store_id= 15 and id = 2;
3、注意:where后面的字段信息,需要在分区里面出现。
4、range分区create table user(id int,name varchar(32),birthday date)partition by range烫喇霰嘴(month(birthday))(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);MAXVALUE: month 最大的值 12
5、分区:如果在一个非常大的表结构里面查找指定数据,可以使用分区(mysql内部实现)后,将数据分成多个小块(按照一定的算法list、range),然后在小块中查找,效率肯定要比从非常大的数据里面查找快一些。