SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 15.08.2012 09:06:28

asfalt_dmitry
Участник
Зарегистрирован: 27.12.2011
Сообщений: 3

Что быстрее работает выборка из VIEW или обычной таблицы?

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, которая копирует данные из вьюхи. И раз в час или в день обновлять её, и данные забирая из неё, не трогая вьюху.
Или может какой ещё вариант подскажите.

Неактивен

 

#2 15.08.2012 23:34:33

LazY
_cмельчак
MySQL Authorized Developer and DBA
Зарегистрирован: 02.04.2007
Сообщений: 849

Re: Что быстрее работает выборка из VIEW или обычной таблицы?

При обращении ко VIEW соответствующий запрос будет выполняться каждый раз.

В отдельной таблице будут уже обсчитанные данные, поэтому так быстрее.

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson