高性能可扩展MySQL数据库设计及架构优化 电商项目(慕课)第2章 电商实例数据库结构设计
关于MySQL分区表
确认MySQL服务器是否支持分区表
mysql> show plugins;
MySQL分区表特点
在逻辑上为 一个表,在物理上存储在多个文件中
HASH分区的键值必须是一个INT类型的值,或通过函数可以转为INT类型
如:PARTITON BY HASH(UNIX_TIMESTAMP(login_time))
PARTITON 4;
RANGE分区
RANGE分区适用场景
分区键为日期或时间类型
LIST分区
按分区键取值的列表进行分区
同范围分区一样,各分区的列表值不能重复
查看表分区信息:
select table_name,partition_name,partition_description,table_rows from information_schema.`partition` where table_name='custmoer_login_log';
增加分区
ALTER TABLE custmoer_login_log ADD PARTITON(PARTITON p3 values less than(2018));
删除分区
ALTER TABLE custmoer_login_log DROP PARTITON p0;
版本5.7以上,归档分区历史数据非常方便
ALTER TABLE customer_login_log exchange PARTITION p1 WITH table arch_customer_login_log;
ALTER TABLE arch_customer_login_log engine=ARCHIVE;更小,但不能写操作
第三章1-3 12分钟