Является ли MySQL JOIN тяжелой операцией?

0

У меня есть один маленький вопрос. Является ли MySQL JOIN тяжелой работой? Например, в одном из моих проектов у меня около 10 объединений в одном запросе. Это плохо?

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

  • 1
    Benchmark. Это единственный способ узнать. Соединения не всегда одинаковы. Это зависит от размеров таблицы, от того, как они объединяются, от статистики и т.д.
  • 2
    Это зависит от объединений, данных, индексов и т. Д. 100 объединений могут быть хорошими, или 2 объединения могут быть слишком много в зависимости от среды.
Теги:
database
join
database-design

1 ответ

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

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

В хорошей базе данных у вас будет одна таблица на сущность, например продукты, клиенты, заказы. Если вы посмотрите более внимательно, вы увидите, что заказ состоит из одного заголовка и множества позиций, относящихся к продукту. Таким образом, это должны быть две таблицы заказов: order_header и order_detail. Четыре таблицы для примера. Вы не разделили бы это, как французские клиенты и американские клиенты, а также дешевые продукты и дорогие продукты, потому что страна-клиент является простым атрибутом и зависит от того, дешево ли продукт зависит от его цены (цены), а цены также являются просто атрибутами; объекты остаются клиентом и продуктом.

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

Чтобы ответить на вопрос: Нет, неплохо иметь десять соединений в запросе. Вы можете захотеть, чтобы кто-то посмотрел на ваш дизайн базы данных, хотя, если вы слепо следуете советам, чтобы создать множество таблиц.

Ещё вопросы

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