我将数据存储在表中,每行的大小约为2 MB。当我尝试执行下面提供的查询以在指定日期内查找数据时,需要很长时间才能获取结果。我还尝试通过获取间隔为5天的日期来获取大块数据,但是这花费了更多时间。下面是我的架构和查询。
CREATE TABLE `std_reslt` (
`student_id` int NOT NULL,
`date` date NOT NULL,
`info` LONGTEXT,
`result ` LONGTEXT,
`result_ids` LONGTEXT,
`sid` int NOT NULL
) ENGINE=InnoDB
PARTITION BY KEY(student_id)
PARTITIONS 50;
CREATE INDEX `student_date`
ON date_uri_pair (`student_id`, `date`);
CREATE INDEX `date_sid`
ON date_uri_pair (`date`, `sid`);
SELECT info, result_ids FROM std_reslt WHERE student_id =30 AND date >= '2019-05-01' and date<= ''2019-05-01'
信息的大小约为2 MB,大约有1015行数据。因此大约要提取2GB的数据。