|
|
|
Оптимизировать запрос
|
|||
|---|---|---|---|
|
#18+
Добрый день. Навоял запрос, но долго работает. К сожалению мои знания оставляют желать лучшего :( поэтому не могу его оптимизировать. Вообще - получается три запроса друг в друге. Что-то мне подсказывает, что это не правильно. Сильно тормозит второй запрос, в котором используется конструкция GROUP BY ..... HAVING Помогите пожалуйста сделать по-человечески Код: php 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.03.2014, 01:45:09 |
|
||
|
Оптимизировать запрос
|
|||
|---|---|---|---|
|
#18+
Структуру shop_product_features то покажите хотя бы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.03.2014, 02:59:33 |
|
||
|
Оптимизировать запрос
|
|||
|---|---|---|---|
|
#18+
Pashik1, заменить вс. гирлянду вложенных запросов на один нормальный запрос с джойнами... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.03.2014, 06:22:38 |
|
||
|
Оптимизировать запрос
|
|||
|---|---|---|---|
|
#18+
Pashik1, во втором запросе как минимум перенести условие фильтрации данных из HAVING в WHERE. Ибо зачем группировать все данные в таблице, если по итогу интересуют лишь данные с product_id = '$product_id' AND feature_id = '5'... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.03.2014, 06:24:46 |
|
||
|
Оптимизировать запрос
|
|||
|---|---|---|---|
|
#18+
Pashik1, более того, второй запрос вообще сам по себе абсурден и требует тщательного переписывания... Ибо select * ... group by <некое одно поле> - тот ещё моветон. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.03.2014, 06:26:40 |
|
||
|
Оптимизировать запрос
|
|||
|---|---|---|---|
|
#18+
Добрый Э - ЭхPashik1, более того, второй запрос вообще сам по себе абсурден и требует тщательного переписывания... Ибо select * ... group by <некое одно поле> - тот ещё моветон.мало того, судя по виду запроса having там можно безболезненно заменить на where ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.03.2014, 10:00:19 |
|
||
|
Оптимизировать запрос
|
|||
|---|---|---|---|
|
#18+
tanglir, про замену having на where я упомянул во втором своем ответе в этой ветке ;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.03.2014, 10:50:07 |
|
||
|
Оптимизировать запрос
|
|||
|---|---|---|---|
|
#18+
Добрый Э - Эхпро замену having на whereЭто, кстати, потенциально может изменить результат запроса по уже указанной причине:Добрый Э - Эхselect * ... group by <некое одно поле> ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.03.2014, 11:05:29 |
|
||
|
Оптимизировать запрос
|
|||
|---|---|---|---|
|
#18+
авторhaving там можно безболезненно заменить на where изначально так и было, но, к сожалению, он не групировал результат. все так же выводил повторы Структуру shop_product_features щас показать не могу, нет доступа. По памяти: 4 поля int, первое - индэкс. Число записей в таблице около 100тыс. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.03.2014, 12:24:35 |
|
||
|
Оптимизировать запрос
|
|||
|---|---|---|---|
|
#18+
miksoft, никто не мешает делать нормальную фильтрацию выбираемых данных через WHERE с последующей группировкой отобранных записей, если таковое требуется. Но зачем же группировать ВСЁ, чтобы после выбрать только нужное? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.03.2014, 13:44:38 |
|
||
|
Оптимизировать запрос
|
|||
|---|---|---|---|
|
#18+
Добрый Э - Эхmiksoft, никто не мешает делать нормальную фильтрацию выбираемых данных через WHERE с последующей группировкой отобранных записей, если таковое требуется. Но зачем же группировать ВСЁ, чтобы после выбрать только нужное?Я ни в коем случае не агитирую за этот HAVING. Я говорю лишь о том, что результат может измениться. Правильно, разумеется, все запросы объединить в один и при этом полностью избегать таких неоднозначностей. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.03.2014, 14:08:06 |
|
||
|
|

start [/forum/topic.php?desktop=1&fid=47&tid=1835066]: |
0ms |
get settings: |
8ms |
get forum list: |
23ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
57ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
57ms |
get tp. blocked users: |
2ms |
| others: | 201ms |
| total: | 367ms |

| 0 / 0 |
