数据库
首页 > 数据库> > mysql - 单表千万数据插入速度过慢解决方法-分库/分表/分区

mysql - 单表千万数据插入速度过慢解决方法-分库/分表/分区

作者:互联网

问题场景

定位问题原因

解决思路

分区操作

1. 比较各种分区的不同点,挑选分区类型
2. 需要根据时间进行分区,时间字段为datetime类型,故选择column分区
ALTER TABLE tb_consume_0 PARTITION BY RANGE COLUMNS(ctime)
(   
PARTITION p1 VALUES LESS THAN (2019-05-01 00:00:00),
PARTITION p2 VALUES LESS THAN (2019-06-01 00:00:00), 
PARTITION p3 VALUES LESS THAN MAXVALUE 
);

报错

ERROR 1503 (HY000): A PRIMARY KEY must include all columns in the tables partitioning function
3,决定重新建表,把ctime塞进主键,做联合主键,然后再对数据进行分区
4, 最终决定放弃使用分区表
1)分区表,分区键设计不太灵活(这个看第三点就知道,分区键必须是属于主键属于uniqueid。。。),如果不走分区键,很容易出现全表锁
2)一旦数据量并发量上来,如果在分区表实施关联,就是一个灾难
3)自己分库分表,自己掌控业务场景与访问模式,可控。分区表,研发写了一个sql,都不确定mysql是怎么玩的,不太可控

标签:mysql,DDL,数据,数据库,定义语言,解决,分区
来源: