Задавайте вопросы, мы ответим
Вы не зашли.
Страниц: 1
CREATE VIEW `rating` AS
SELECT id, COUNT( user_rating ) AS count_users, SUM( user_rating ) / COUNT( user_rating ) AS rating
FROM users_votes
GROUP BY id;
--
DROP TABLE IF EXISTS `archive_rating`;
CREATE TABLE `archive_rating` AS
SELECT * FROM `rating`
WHERE 1;
Есть таблица users_votes, где хранятся оценки пользователей, например для статей, и есть вьюха rating, в которой высчитывается общий рейтинг и количество проголосовавших.
Если у нас много хранится оценок, то как лучше сделать, т.е. что будет быстрее работать:
1. Если мы вытаскиваем данные из вьюхи, каждый раз к ней обращаясь за изменёнными результатами,
или
2. Создать таблицу archive_rating, которая копирует данные из вьюхи. И раз в час или в день обновлять её, и данные забирая из неё, не трогая вьюху.
Или может какой ещё вариант подскажите.
Неактивен
При обращении ко VIEW соответствующий запрос будет выполняться каждый раз.
В отдельной таблице будут уже обсчитанные данные, поэтому так быстрее.
Неактивен
Страниц: 1