Временная таблица. Стоит ли создавать постоянную?

aciDroN

Новичок
Временная таблица. Стоит ли создавать постоянную?

Сайт музыкальной тематики, есть авторы, есть треки, за каждый трек голосуют, тем самым прибавляя ему баллы, всё это в базе в разных таблицах. На страничке построения чарта - первенства по очкам - я делаю временную таблицу, и затем её разбиваю на странички, сортирую и т.д. (запрос выглядит так CREATE TEMPORARY TABLE chart_table TYPE=HEAP
SELECT @i:=@i+1 AS polposition, A.*, B.nickname, S.*, SUM(MEMBER.member_k * MEMBER.points)/SUM(MEMBER.member_k) AS points_sum, COUNT(MEMBER.points) AS points_count
FROM A, B, S, MEMBER
WHERE MEMBER.track_id = A.track_id AND A.member_id = B.member_id AND S.style_id = A.style_id AND A.topwinner_date = '0000-00-00'
GROUP BY A.name
HAVING COUNT(MEMBER.points) > 3
ORDER BY points_sum DESC, points_count DESC, B.status DESC, (A.points_listen+A.points_load) DESC, RAND()

)
Вопрос такой: СТОИТ ли выносить создание этой таблицы, но уже постоянной, например, в скрипт по крону каждый час или же в его выполнении каждый раз при навигации по чарту нет ничего страшного?
 

alexhemp

Новичок
Не понятно, зачем тебе вообще временная таблица.

Почему-бы просто не выполнять этот запрос и выводить номер строки в скрипте при формировании HTML. Разбивать на странички LIMIT-ом.
Ведь временная таблица живет только во время коннекта MySQL и PHP и дропается автоматом. Новая страница - будет новая временная таблица. Если pconnect используешь, то может временная таблица другого юзера остаться :)

Если нагрузка большая - логично кэшировать по крону, раз в N минут и хранить в постоянной таблице (можно например формировать чарт каждый час и хранить все чарты, тогда появится возможность сравнивать результаты голосования, типа за неделю(месяц, день, час) кто-то прибавил, кто-то опустился. Все что старше определенного "возраста" - стирать в этом-же скрипте).
 

aciDroN

Новичок
Не понятно, зачем тебе вообще временная таблица.
Потом тот же запрос с различными модификациями вроде LIMIT и ORDER используется ещё 3-4 раза; плюс есть страница каждого автора, где из той же таблицы берутся места треков в рейтинге.

Ведь временная таблица живет только во время коннекта MySQL и PHP и дропается автоматом. Новая страница - будет новая временная таблица.
Потому и спрашиваю, целесообразно ли её выносить в крон, и будет ли от этого выигрыш в производительности.
Склоняюсь к тому, что будет :)
 
Сверху