Denis, при таком количестве страниц и количестве просмотров, чтобы вывести топ за 30 дней, мне нужно ещё сделать сперва суммирование item_views.count_views за 30 дней с группировкой по item_id, так как данные в item_views разбиты по дням.
И вот подобный запрос из-за того что требует суммирование всех строк из sum_views работает сам по себе достаточно медленно (3-4 сек) и возвращает очень большое количество строк для дальнейшего JOIN'a
То есть возвращается каждый item_id который был скачан хотя бы раз за последние 30 дн, а это тоже миллионы строк.
Индексы в таблицах есть, просто на примере не показал их.
SELECT item_id, SUM(count_views) AS sum_views
FROM item_views
WHERE day_timestamp > UNIX_TIMESTAMP(DATE_SUB(NOW(), INTERVAL 30 day))
GROUP BY item_id
ORDER BY sum_views DESC
Единственное возможное решение которое я нашёл, это добавление параметра -aspect 4:3 что принудительно заставит ffmpeg сжать или растянуть картинку до указанных размеров, но в таком случае мы получаем небольшую деформацию изображения.
Думаю, то что диски продаются фактически по себестоимости, и накрутки минимальны, в отличие от розничных магазинов где в стоимость дисков включены стоимость аренды магазина, З/П продавцам и тд. По сути на стимбае они продают сканы кодов с оригинальных дисков. Насчёт платишки, там тоже вполне можно покупать игры, главное внимательно читать описание и отзывы.
И вот подобный запрос из-за того что требует суммирование всех строк из sum_views работает сам по себе достаточно медленно (3-4 сек) и возвращает очень большое количество строк для дальнейшего JOIN'a
То есть возвращается каждый item_id который был скачан хотя бы раз за последние 30 дн, а это тоже миллионы строк.
Индексы в таблицах есть, просто на примере не показал их.