软件下载吧文章资讯

分类分类

SQL开发知识:分区表场景下的 SQL 优化

2024-03-07 21:27作者:下载吧

导读

有个表做了分区,每天一个分区。

该表上有个查询,经常只查询表中某一天数据,但每次都几乎要扫描整个分区的所有数据,有什么办法进行优化吗?

待优化场景

有一个大表,每天产生的数据量约100万,所以就采用表分区方案,每天一个分区。

下面是该表的DDL:

CREATE TABLE `t1` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`date` date NOT NULL,
`kid` int(11) DEFAULT ‘0’,
`uid` int(11) NOT NULL,
`iid` int(11) DEFAULT ‘0’,
`icnt` int(8) DEFAULT ‘0’,
`tst` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
`countp` smallint(11) DEFAULT ‘1’,
`isr` int(2) NOT NULL DEFAULT ‘0’,
`clv` int(5) NOT NULL DEFAULT ‘1’,
PRIMARY KEY (`id`,`date`),
UNIQUE KEY `date` (`date`,`uid`,`iid`),
KEY `date_2` (`date`,`kid`)
) ENGINE=InnoDB AUTO_INCREMENT=3180686682 DEFAULT CHARSET=utf8mb4
/*!50500 PARTITION BY RANGE COLUMNS(`date`)
(PARTITION p20161201 VALUES LESS THAN (‘2016-12-02’) ENGINE = InnoDB,
PARTITION p20161202 VALUES LESS THAN (‘2016-12-03’) ENGINE = InnoDB,
PARTITION p20161203 VALUES LESS THAN (‘2016-12-04’) ENGINE = InnoDB,

展开全部

相关文章

说两句网友评论
    我要跟贴
    取消