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

  • Автор темы Автор темы aciDroN
  • Дата начала Дата начала

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()

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

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

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

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