АА :) чета я пропустил сообщение что проблема решена :)
Раз в час поменялись - повторили сортировку и так на автомате.
Проверить же не сложно - будет толк на вашей системе или нет, заодно оцените сколько выполняется сортировка и если после неё запрос в 15 сек выполнится за 7 сек - это уже результат.
Саму базу отсортировать.
ALTER TABLE `cms_freepages` ORDER BY `id` DESC
Я вообще-то помочь хотел, а не хвастаться.
Что мешает сортирнуть базу в обратном порядке и не использовать сортировку в каждом запросе?
PS.
А индекс базы полностью помещается в RAM? - памяти выделено достаточно? чтобы не перечитывать индексы с диска?
Я в свое время очень увлеченно тюнил свою доску объявлений - и постраничный вывод был ахилесовой пятой.
Сейчас проверил на своей базе - 400 000 записей 510МБ , 40 разных категорий
SELECT SQL_NO_CACHE * FROM `data` WHERE kat=5 ORDER BY id DESC LIMIT 37710, 30
0.8 сек.
если отсортировать базу в обратном порядке - чтобы избежать сортировки
SELECT SQL_NO_CACHE * FROM `data` WHERE kat=5 LIMIT 37710, 30
0,3 сек.
с кэшированием так ваще агонь.
kat tinyint(4)
в 5 категории 82 000 записей
ради интереса проверьте как быстро выполняется
SELECT id FROM `cms_freepages` WHERE cat=2 ORDER id DESC LIMIT 37710, 30
в вашем первоначальном выцепляются все поля - ответ получается длинным и не попадает в кэш.
А ваше решение
Летает по причине того что есть всего 19 разных запросов, а тех,когда выполняется с лимитом, 100500 , которые удачно ложатся в кэш и благодаря частомы выполнению там поселяются навсегда, но ровно до того момента когда тело ответа <1МБ (по дефолту в MySQL)
А специально для темных:
Почему ресурсы предоставляются не соизмеримые на XEN и OpenVZ?
Как видите подсчеты от и до разнятся в 10 раз - не понятно сколько трафика сгенерируют ваши рекламные материалы - от 1 до 10 ТБ.
Вам скорее всего выгоднее будет взять VPS ссылки с которого будут проставлять партнеры (не думаю что траф там будет большой) а вот раздачу на своей площадке с 10 000 уников осуществить с площадок вебмастеров - пошушукайте тут на форуме - наверняка найдете того кто в Германии берет сервак за 50 евро и у него остаются не использованные 5-8ТБ трафика.
Зачем деление на VPS и партнера? - чтобы экстренно не менять ссылки на сайтах партнеров, если вдруг вебмастер с форума подведет.
И тогда проведение раздачи своих роликов вам обойдется в $10-$30 но придется самому пошушукать, ну или го в CDN за $100-$500.
Магу организовать раздачу за $100 при планке 10ТБ.
Такое хозяйство всего то выльется в пару десятков $
Если конечно не разместите свои ролики на облачном какомнить хостинге с конским ценником за траф.
т.к. по делу у вас основная затратная статья - трафик - которого потребуется не больше 1ТБ - а это копейки, чтобы стоить дорого.
Так что $10-$30 потолок.
Ну так расписывайте - за что поперли - интересно же )
а если по делу то у этих людей тариф подойдет
http://aminahost.ru/hosting.html
2 GB 90.00 руб.
4 GB 172.50 руб.
ну или как советуют слабенький VDS с 512 памяти + разово купить панель ИСП менеджера + разовую настройку администратора.