2010-09-29 2 views
0

Я создал базу данных mysql для своего проекта. Мне нужно знать, правильно ли я это сделал или нет.Как оптимизировать таблицу mysql для выполнения быстрее

Я создал главную таблицу, чтобы сохранить все мои данные о фильме, и я построил несколько других таблиц для хранения представлений и оценок. Я делаю неправильно, используя разные таблицы для хранения просмотров и рейтингов, хотя я могу использовать основную таблицу для хранения просмотров и рейтинга в каждом сообщении.

Если я добавлю поля оценки и представления в основную таблицу, это повлияет на мою базу данных? Какое оптимальное решение?

Я использую Myisam, так как для вставки требуется множество запросов выбора.

+0

Необходимо быть более точным. Оптимизировать для чего? Пространство или время отклика? Какие запросы задаются этой базе данных. В каком хранилище вы используете InnoDB или MyISAM? – rkg

+0

Это хорошая идея для разделения данных и статистики. Помните, что совокупные функции sum, avg и т. Д. Экстремально медленны. – iddqd

ответ

0

Если вы просто используете поля для инкрементного значения, вы можете использовать основную таблицу. Но если вы хотите сохранить дополнительные параметры для голосования или просмотра, вы должны использовать временную таблицу. , например. Вы хотите сохранить, какой пользователь проголосовал за какое значение на эту дату. Чем вы должны добавить таблицу «голосов» с полями: voteId, userId, рейтинг, дата.

Впоследствии вы можете использовать функцию AVG для расчета анонимного голосования.

+0

thanx для ответа ура, я использую дополнительную таблицу для – pravat231

+0

Для больших таблиц никогда не используйте функции aggragate. Вычислить статистику онлайн или использовать другое хранилище/db и использовать карту уменьшить. – iddqd

+0

А, ок, забыл упомянуть об этом :) – VeeWee

Смежные вопросы