Как оптимизировать таблицу MySQL для более быстрого выполнения

0

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

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

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

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

  • 0
    Нужно быть более точным. Оптимизировать для чего? Пространство или время отклика? Какие запросы ставятся к этой базе данных. Какой механизм хранения вы используете InnoDB или MyISAM?
  • 0
    Это хорошая идея, чтобы разделить данные и статистику. Помните, что агрегатные функции sum, avg и т. Д. Чрезвычайно медленные.
Теги:

1 ответ

0

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

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

  • 0
    Спасибо за ваш ответ, я использую дополнительную таблицу для
  • 0
    Для больших таблиц никогда не используйте функции агрегирования. Вычислять статистику онлайн или использовать другое хранилище / БД и использовать карту уменьшить.
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню