|
|
|
Оптимизировать запрос
|
|||
|---|---|---|---|
|
#18+
Добрый день! Подскажите, каким образом можно оптимизировать запрос. Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Проблема в том, для выборки фотки юзера перебирается весь массив данных, но присвоить WHERE contact_id = user_id не получается. Есть ли возможность передать внутри цикла эту переменную или иным способом оптимизировать запрос? С таким просто раньше не сталкивался, поэтому обращаюсь в Вам ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.10.2015, 14:22:37 |
|
||
|
Оптимизировать запрос
|
|||
|---|---|---|---|
|
#18+
1) Убрать самый внутренний подзапрос; 2) Заменить звезду в подзапросе на список конкретных полей. Это для начала. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.10.2015, 15:01:04 |
|
||
|
Оптимизировать запрос
|
|||
|---|---|---|---|
|
#18+
Есть ли смысл отказаться от этого внутреннего запроса и заменить его циклом в foreach? На сколько выигрыша будет эта замена, учитывая допустим записей 50к в базе wa_contact_foto. LIMIT 10 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.10.2015, 15:29:09 |
|
||
|
Оптимизировать запрос
|
|||
|---|---|---|---|
|
#18+
Внутренний подзапрос не имеет смысла В ПРИНЦИПЕ. Кроме случая, когда необходимо заставить сервер выполнить ненужную для результата дополнительную работу. Скажем, для обогрева помещения... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.10.2015, 15:56:11 |
|
||
|
Оптимизировать запрос
|
|||
|---|---|---|---|
|
#18+
AkinaВнутренний подзапрос не имеет смысла В ПРИНЦИПЕ.Это топикстартер пытается подгадать, чтобы в результат SELECT * FROM ... GROUP BY contact_id попали нужные записи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.10.2015, 16:14:53 |
|
||
|
Оптимизировать запрос
|
|||
|---|---|---|---|
|
#18+
miksoftтопикстартер пытается подгадать, чтобы в результат SELECT * FROM ... GROUP BY contact_id попали нужные записи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.10.2015, 16:30:08 |
|
||
|
Оптимизировать запрос
|
|||
|---|---|---|---|
|
#18+
Да, была такая конструкция поэтому и спрашиваю как рационально подойти и возможно ли в этот внутренний запрос напрямую вставить WHERE contact_id = xxx. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.10.2015, 17:21:18 |
|
||
|
Оптимизировать запрос
|
|||
|---|---|---|---|
|
#18+
Вы лучше попробуйте объяснить, за каким хреном вообще Вы влепили этот самый внутренний запрос... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.10.2015, 17:44:18 |
|
||
|
Оптимизировать запрос
|
|||
|---|---|---|---|
|
#18+
Я выбираю записи юзеров (их анкет), с фотками (фотки у юзеров отсортированы самостоятельно ими же) + счетчик количества фотографий в этой анкете ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.10.2015, 18:15:45 |
|
||
|
Оптимизировать запрос
|
|||
|---|---|---|---|
|
#18+
Вот визуальный пример https://monosnap.com/file/uDB5MTLzQj9EyBX7k2w1MkjjXZMRGh# ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.10.2015, 18:19:18 |
|
||
|
Оптимизировать запрос
|
|||
|---|---|---|---|
|
#18+
treamzЯ выбираю записи юзеров (их анкет), с фотками (фотки у юзеров отсортированы самостоятельно ими же) + счетчик количества фотографий в этой анкете Внутренний подзапрос: Код: sql 1. ничего не подсчитывает. Он тупо выдаёт ВСЕ записи таблицы, да ещё зачем-то сортирует их (причём при передаче вышестоящему подзапросу сортировка будет проигнорирована), а заодно делает невозможным использование индексов. Замена подзапроса на саму таблицу уберёт лишнюю, фактически игнорируемую, операцию, и даст возможность использовать индексы (при наличии, конечно). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.10.2015, 18:26:00 |
|
||
|
Оптимизировать запрос
|
|||
|---|---|---|---|
|
#18+
Спасибо! Да действительно ненужный запрос. Всеже в итоге можно выбрать только нужный контакт ID из подзапроса? Чтобы избежать выборку всех данных из таблицы? https://monosnap.com/file/efUZFTND4kkk3aF7udK094R2vt210B ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.10.2015, 18:40:06 |
|
||
|
Оптимизировать запрос
|
|||
|---|---|---|---|
|
#18+
Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.10.2015, 18:47:46 |
|
||
|
Оптимизировать запрос
|
|||
|---|---|---|---|
|
#18+
Спасибо всем кто помог! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.10.2015, 20:07:46 |
|
||
|
Оптимизировать запрос
|
|||
|---|---|---|---|
|
#18+
Lumix Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. ...вы же програмный архитектор... ...ну и занимайтесь програмированием... ...что вы людям голову морочите... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.10.2015, 02:16:07 |
|
||
|
Оптимизировать запрос
|
|||
|---|---|---|---|
|
#18+
treamzДобрый день! Подскажите, каким образом можно оптимизировать запрос. Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Проблема в том, для выборки фотки юзера перебирается весь массив данных, но присвоить WHERE contact_id = user_id не получается. Есть ли возможность передать внутри цикла эту переменную или иным способом оптимизировать запрос? С таким просто раньше не сталкивался, поэтому обращаюсь в Вам ...у вас ошибка по логике запроса: c.image_name и c.ext не определены из-за нeправильного group by. Для конкретики, четко повторите условие задачи, особено с указанием какую фотку из нескольких вы хотите взять в поля c.image_name и c.ext и с указанием : к чему было сказано LIMIT 10. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.10.2015, 02:21:25 |
|
||
|
|

start [/forum/topic.php?fid=47&msg=39084221&tid=1832585]: |
0ms |
get settings: |
9ms |
get forum list: |
9ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
41ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
76ms |
get tp. blocked users: |
2ms |
| others: | 236ms |
| total: | 391ms |

| 0 / 0 |
