Я хочу получить все статьи в моей базе данных, которые наиболее просматриваются в прошлый день, неделю или месяц.Альтернатива этому запросу
Вот почему я использую эти запросы (я использую результаты первого запроса для создания последнего)
SELECT guid
FROM tracking
WHERE date > UNIX_TIMESTAMP(NOW() - INTERVAL 1 MONTH)
GROUP BY guid
ORDER BY count(guid) DESC limit 1,10
SELECT *
FROM `items`
WHERE `id` IN('66', '37', '42', '50', '55', '38', '41', '65', '71', '44') AND `type` = 'ddl'
ORDER BY FIELD(id, 66, 37, 42, 50, 55, 38, 41, 65, 71, 44)
Есть еще один способ, чтобы получить те же результаты, очень быстро? В настоящее время время ответа составляет 0,4530 мс только для 45 записей в таблице отслеживания & 36 записей в таблице элементов.
EXPLAIN
Вы должны замените список состояния «IN» первым запросом. У вас есть индексы на 'guid' и' date', например? – jeroen
да, я создал индекс для guid – LeSpotted44
Я подозреваю, проблема не в том, что касается операторов, но и с окружающей средой. Имея всего 45 и 36 записей, запросы должны выполняться быстро, несмотря ни на что. –