Новости
Документация
Download
Webboard
Поиск
FAQ/ЧаВо
Обратная связь




MySQL.RU - Webboard



Вернуться
Что быстрее... (fly) 12/04/2011 - 02:30:29
      Re: Что быстрее... (Akina) 12/04/2011 - 08:58:14

> Original message text:
> From: fly - 12/04/2011 - 02:30:29
> Subject:Что быстрее...
> -----------------
> Доброе время суток!
>
> Есть сущность, к которой указывается определенный набор стран из гео ипи. Отношения сущности и стран хранится в таблице, предположим:
>
> ent_country_rel:
> - ent_id (индекс)
> - country_id (индекс)
>
> Пользователь будет в основном выбирать либо все страны, либо меньше 50. Поэтому есть такой вариант, что если юзер выбирает отношение со всеми странами то в таблицу записывается всего одна строчка, где country_id = 0 - это значит, что сущность "отношается" :) со всеми странами. Таким образом мы в разы уменьшим объем данных в таблице.
>
> Теперь соответственно вопрос: Что выиграет по скорости:
>
> SELECT ent_id FROM ent_country_rel WHERE country_id='6' (получить все сущности у которых указаны страны с кодом 6, для варианта, когда для каждого отношения добавляется одна строка)
>
> или
>
> SELECT ent_id FROM ent_country_rel WHERE country_id='6' or country_id='0' (получить все сущности у которых указаны страны с кодом 6 или сущности, для которых юзер выбрал все страны.. для варианты с экономией размера таблицы. При этом варианте надо учитывать, что строк гораздо меньше чем в первом случае, так как для всех сущностей, которые имеют отношение со всеми странами заменяются всего одной строкой, за место 260, если вписывать отдельно отношение к каждой стране).
>
> Заранее благодарен!!!
>


From: Akina - 12/04/2011 - 08:58:14
Subject:Что быстрее...
-----------------
1) При выборке по индексу (а что он используется - надо проверить, может, даже избыточный хинт навесить) пофиг, одно условие или два.

2) "country_id = 0 - это значит, что сущность "отношается" :) со всеми странами" - такой подход противоречит принципам нормализации, собьёт с толку подсистему обеспечения целостности (как FK прописывать?) и влечёт за собой потенциальные проблемы.

Я бы отказался от идеи "группировать" привязки.


[Это сообщение - спам!]

Последние сообщения из форума

Уважаемые посетители форума MySQL.RU!
Убедительная просьба, прежде чем задавать свой вопрос в этом форуме, обратите внимание на разделы:
- ответы на наиболее часто задаваемые вопросы - FAQ
- раздел документация
- раздел поиск по сообщениям форума и документации
Также, старайтесь наиболее подробно указывать свою ситуацию (версию операционной системы, версию MySQL, версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
 Имя:
 E-mail:
 Тема:
 Текст:
Код подтверждения отправки: Code
38267



РЕКЛАМА НА САЙТЕ
  Создание сайтов | |