Является ли MySQL JOIN тяжелой операцией? - PullRequest
0 голосов
/ 12 сентября 2018

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

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

1 Ответ

0 голосов
/ 12 сентября 2018

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

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

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

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

...