分区表QPS性能下降问题询问

【 测试环境 】
【 OB 】
【 4.2.0 】
【问题描述】
建表语句:
CREATE TABLE test_partition01 (
record_id bigint(20) unsigned NOT NULL AUTO_INCREMENT,
id bigint(20) unsigned NOT NULL DEFAULT ‘0’ COMMENT ‘id’,
did bigint(20) NOT NULL DEFAULT ‘0’ COMMENT ‘did’,
task_id bigint(20) unsigned NOT NULL DEFAULT ‘0’ COMMENT ‘任务id’,
activity_id bigint(20) NOT NULL DEFAULT ‘0’ COMMENT ‘活动id’,
status tinyint(3) NOT NULL DEFAULT ‘-1’ COMMENT ‘状态’,
created datetime NOT NULL DEFAULT ‘1970-01-01 00:00:00’ COMMENT ‘创建时间’,
modified datetime NOT NULL DEFAULT ‘1970-01-01 00:00:00’ COMMENT ‘修改时间’,
task_receive_time datetime NOT NULL DEFAULT ‘2018-01-01 00:00:00’ COMMENT ‘任务接收时间’,
task_completion_time datetime NOT NULL DEFAULT ‘2018-01-01 00:00:00’ COMMENT ‘任务完成时间’,
task_expire_time datetime NOT NULL DEFAULT ‘2018-01-01 00:00:00’ COMMENT ‘任务过期时间’,
PRIMARY KEY (record_id),
UNIQUE KEY un_did_task_id (did,task_id),
KEY created (created),
KEY modified (modified)
) ENGINE=InnoDB AUTO_INCREMENT=3381 DEFAULT CHARSET=utf8mb4;

CREATE TABLE test_partition02 (
record_id bigint(20) unsigned NOT NULL AUTO_INCREMENT,
id bigint(20) unsigned NOT NULL DEFAULT ‘0’ COMMENT ‘id’,
did bigint(20) NOT NULL DEFAULT ‘0’ COMMENT ‘did’,
task_id bigint(20) unsigned NOT NULL DEFAULT ‘0’ COMMENT ‘任务id’,
activity_id bigint(20) NOT NULL DEFAULT ‘0’ COMMENT ‘活动id’,
status tinyint(3) NOT NULL DEFAULT ‘-1’ COMMENT ‘状态’,
created datetime NOT NULL DEFAULT ‘1970-01-01 00:00:00’ COMMENT ‘创建时间’,
modified datetime NOT NULL DEFAULT ‘1970-01-01 00:00:00’ COMMENT ‘修改时间’,
task_receive_time datetime NOT NULL DEFAULT ‘2018-01-01 00:00:00’ COMMENT ‘任务接收时间’,
task_completion_time datetime NOT NULL DEFAULT ‘2018-01-01 00:00:00’ COMMENT ‘任务完成时间’,
task_expire_time datetime NOT NULL DEFAULT ‘2018-01-01 00:00:00’ COMMENT ‘任务过期时间’,
PRIMARY KEY (record_id),
UNIQUE KEY un_did_task_id (did,task_id,record_id),
KEY created (created),
KEY modified (modified)
) ENGINE=InnoDB AUTO_INCREMENT=3381 DEFAULT CHARSET=utf8mb4
PARTITION BY HASH(record_id) PARTITIONS 30;

测试sql:

select * from test_partition01 WHERE did = 172695112519474677
select * from test_partition02 WHERE did = xx

读表2的QPS性能比表1要低很多,像这种有主键、唯一键的表结构应该怎么设置分区键呢,

大佬,怎么解决呀

分区键要设置成你最频繁执行sql的where条件,你的分区键是record_id你的条件是did,走不上分区剪裁,这种情下,分区表的性能不如非分区表