首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

MySQL数据库分区

MySQL数据库分区

在数据量非常大(500w左右的)的情况下,MySQL自身提供一种分区的机制,可以按照一定的分区算法(list、Range、hash、key)将一种表里面的数据保存在不同的分区(磁盘上的空间)里面。

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;

注意:where后面的字段信息,需要在分区里面出现。

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

分区:如果在一个非常大的表结构里面查找指定数据,可以使用分区(mysql内部实现)后,将数据分成多个小块(按照一定的算法list、range),然后在小块中查找,效率肯定要比从非常大的数据里面查找快一些。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20201109A019N100?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券