時(shí)間:2024-03-07 21:27作者:下載吧人氣:12
導(dǎo)讀
有個(gè)表做了分區(qū),每天一個(gè)分區(qū)。
該表上有個(gè)查詢(xún),經(jīng)常只查詢(xún)表中某一天數(shù)據(jù),但每次都幾乎要掃描整個(gè)分區(qū)的所有數(shù)據(jù),有什么辦法進(jìn)行優(yōu)化嗎?
待優(yōu)化場(chǎng)景
有一個(gè)大表,每天產(chǎn)生的數(shù)據(jù)量約100萬(wàn),所以就采用表分區(qū)方案,每天一個(gè)分區(qū)。
下面是該表的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,
網(wǎng)友評(píng)論