Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
1 сложный запрос или несколько простых?
|
|||
|---|---|---|---|
|
#18+
Есть 3 таблицы: users (id, type, online), colors(id,name), user_colors(user_id, color_id) Нужно получить выборку в которой будет список цветов для пользователей которые онлайн, и тип равен заданному. У меня алгоритм примерно такой получился. <?php $result = SELECT * id FROM users WHERE type = $type AND online = true; $result = SELECT * color_id FROM user_colors WHERE id = массив id который вернет первый запрос $result = SELECT * name FROM colors WHERE id = массив color_id который вернет второй запрос Можно ли это все сделать одним запросом? Пример пожалуйста. Что будет лучше с точки зрения производительности, 3 таких запроса или 1 большой и страшный(если он возможен). Поправите ошибки в синтаксисе, мой вариант все равно не работает. Второй запрос может/будет возвращать дубликаты, можно ли в запросе это ограничить? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2017, 23:29 |
|
||
|
1 сложный запрос или несколько простых?
|
|||
|---|---|---|---|
|
#18+
PavelRemmМожно ли это все сделать одним запросом? Пример пожалуйста. Навскидку, как-то так примерно: Код: sql 1. 2. 3. 4. 5. PavelRemmЧто будет лучше с точки зрения производительности, 3 таких запроса или 1 большойЗадача довольно проста. Насколько понимаю, на клиенте не предусматривается никакой обработки данных между запросами. В таком случае, не вижу смысла гонять данные между сервером и клиентом. Какой-то явно ощутимой разницы в производительности при указанных структурах таблиц вряд ли найдете. Индексы правильно проставить необходимо в любом случае. PS: А нафига нужен просто список цветов безотносительно привязки к конкретным пользователям? "Раскрасить" пользователей своими цветами - понятная задача, а свалить цвета активных пользователей в одну кучу - не вполне. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2017, 00:30 |
|
||
|
1 сложный запрос или несколько простых?
|
|||
|---|---|---|---|
|
#18+
'Цвет' - аналогия для упрощения вопроса. Есть 2 типа пользователей (Тип 1, Тип 2). Пользователь типа-1 при регистрации на сайте выбирает из списка "Цвет" несколько пунктов. Пример: Список 1.зеленый, 2.черный, 3.красный 4.синий .... Пользователь может выбрать один или больше вариантов. Есть форма для пользователей типа-2 в которой есть тег <select> Его нужно заполнить только теми 'Цветами' которые выбрали пользователи типа-1 при регистрации и которые в данный момент онлайн на сайте. Вот у меня и получилось 3 таблички. Таблица user_colors - связующая между двумя другими. Типо связь (многие ко многим). Я это понял так. Если я ошибаюсь, пожалуйста поправте. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2017, 01:21 |
|
||
|
1 сложный запрос или несколько простых?
|
|||
|---|---|---|---|
|
#18+
vkle Индексы правильно проставить необходимо в любом случае. Про индексы можно подробнее? Я не совсем понимаю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2017, 01:27 |
|
||
|
1 сложный запрос или несколько простых?
|
|||
|---|---|---|---|
|
#18+
PavelRemmМожно ли это все сделать одним запросом? ........ Что будет лучше с точки зрения производительности, 3 таких запроса или 1 большой и страшный(если он возможен). [/quot] Приоритеты не так расставлены. Для отладки используй три запроса. Можно будет посмотреть промежуточные данные. После проверки работоспособности алгоритма - объедини в один. Проверь оба варианта на скорость. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2017, 08:05 |
|
||
|
|

start [/forum/topic.php?fid=47&msg=39528916&tid=1830389]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
32ms |
get topic data: |
12ms |
get forum data: |
2ms |
get page messages: |
39ms |
get tp. blocked users: |
1ms |
| others: | 238ms |
| total: | 352ms |

| 0 / 0 |
