У меня есть данные в таблице с размером каждой строки около 2 МБ. Когда я пытаюсь выполнить запрос, представленный ниже, чтобы найти данные в указанные даты, требуется много времени для получения результата. Я также пытался собирать данные порциями, выбирая даты с интервалом в 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 МБ, а объем данных составляет около 1015 строк. Таким образом, около 2 ГБ данных для выборки.