Влечет ли самостоятельное объединение более высокую производительность, чем объединение в несколько таблиц?

0

Когда я спросил о правильном подходе к проблеме моделирования данных - используя одну или две таблицы, некоторые пользователи ответили, что самосоединения представляют собой ответственность за производительность. Это верно, учитывая следующий сценарий (база данных MySQL):

  • Модель предназначена для веб-сайта Q & A, где вопросы и ответы хранятся в одной и той же таблице, обозначенной столбцом TypeId.
  • Если у вопроса может быть много ответов; он может быть использован и проголосован многими пользователями.
  • Qs и As имеют свои собственные комментарии

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

Спасибо

Теги:

1 ответ

3
Лучший ответ

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

С точки зрения производительности нет особой причины, по которой одно самостоятельное объединение было бы медленным - я подозреваю, что проблема, о которой вы думаете, заключается в том, что вам нужно запросить рекурсивно, что медленно в MySQL.

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

Ещё вопросы

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