|
|
|
Как сделать оптимизацию запроса?
|
|||
|---|---|---|---|
|
#18+
Привет всем! Есть следующий запрос к БД который делает выборку заказов магазина: Код: php 1. 2. 3. 4. 5. 6. 7. 8. Запрос выполняется очень медленно - около 40 секунд. Методом тыка определил что это изза 2 последних строчек(это заказы незарегистрированых пользователей): Код: php 1. 2. Как оптимизировать, ускорить время обработки? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2014, 16:10:22 |
|
||
|
Как сделать оптимизацию запроса?
|
|||
|---|---|---|---|
|
#18+
tegs89, 1. по любому почитайте и используйте EXPLAIN для таких разборок 2. когда идет смесь AND OR -- полезно использовать скобки для ясности. 3. Часто (не всегда) запросы с OR лучше переписывать на два отдельных запроса и потом делать UNION ALL. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2014, 16:30:18 |
|
||
|
Как сделать оптимизацию запроса?
|
|||
|---|---|---|---|
|
#18+
tegs89 Код: php 1. Это что за таинственный фильтр? Выведите содержимое переменной $sql_ord непосредственно перед выполнением запроса и покажите нам. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2014, 16:36:59 |
|
||
|
Как сделать оптимизацию запроса?
|
|||
|---|---|---|---|
|
#18+
javajdbctegs89, 1. по любому почитайте и используйте EXPLAIN для таких разборок 2. когда идет смесь AND OR -- полезно использовать скобки для ясности. 3. Часто (не всегда) запросы с OR лучше переписывать на два отдельных запроса и потом делать UNION ALL. Спасибо. Не подскажите хороший сайт с документацией? javajdbcЭто что за таинственный фильтр? Выведите содержимое переменной $sql_ord непосредственно перед выполнением запроса и покажите нам. $filter - переменная добавления поиска для фильтра(если исп.фильтр): Код: php 1. 2. 3. 4. 5. Что вы имеете ввиду вывести $sql_ord перед выполнением? Не совсем понял. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2014, 17:47:16 |
|
||
|
Как сделать оптимизацию запроса?
|
|||
|---|---|---|---|
|
#18+
Кстати пробовал ALTER TABLE order ADD INDEX(user_id, us_g). Лучше не стало. Интересно, почему? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2014, 17:49:39 |
|
||
|
Как сделать оптимизацию запроса?
|
|||
|---|---|---|---|
|
#18+
tegs89Не подскажите хороший сайт с документацией?Лучше оригинальной документации еще ничего не придумали. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2014, 17:52:01 |
|
||
|
Как сделать оптимизацию запроса?
|
|||
|---|---|---|---|
|
#18+
tegs89Что вы имеете ввиду вывести $sql_ord перед выполнением? Не совсем понял.Именно это и имею в виду. Вывести содержимое переменной $sql_ord куда угодно - на страницу, в файл и т.п. А потом скопировать сюда. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2014, 17:53:23 |
|
||
|
Как сделать оптимизацию запроса?
|
|||
|---|---|---|---|
|
#18+
tegs89$filter - переменная добавления поиска для фильтра(если исп.фильтр):А зачем его три раза в запрос совать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2014, 17:54:25 |
|
||
|
Как сделать оптимизацию запроса?
|
|||
|---|---|---|---|
|
#18+
miksofttegs89Что вы имеете ввиду вывести $sql_ord перед выполнением? Не совсем понял.Именно это и имею в виду. Вывести содержимое переменной $sql_ord куда угодно - на страницу, в файл и т.п. А потом скопировать сюда. Вы имеет ввиду через var_dump() скопировать что оно выводит? [quot miksoft]tegs89А зачем его три раза в запрос совать? Вы правы, хватило бы и 2. Но смысл оно смысл не меняет, пробовал. Из за посдених 2 строк Код: php 1. 2. грузит около 40 секунд ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2014, 18:05:55 |
|
||
|
Как сделать оптимизацию запроса?
|
|||
|---|---|---|---|
|
#18+
tegs89Вы имеет ввиду через var_dump() скопировать что оно выводит?Ну можно и так. Но, наверное, хватило бы и простого echo. tegs89Вы правы, хватило бы и 2.А почему 2? Хватило бы и одного. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2014, 18:09:21 |
|
||
|
Как сделать оптимизацию запроса?
|
|||
|---|---|---|---|
|
#18+
var_dump($sql_ord) : string(849) "SELECT DISTINCT orders.id, orders.user_id,orders.area,orders.address, orders.user_name, orders.email, orders.phone, orders.address,DATE_FORMAT(orders.time_order, '%d:%m:%Y %H:%i') AS time_order , orders.delivery_id, orders.payment_id, orders.payment_id,orders.user_preffered_date,orders.user_preffered_time,orders.user_name,orders.delivery_id,orders.payment_id,orders.total_cost FROM orders, rule_group, rul_areas WHERE rule_group.id_units='4' AND rule_group.id_group=orders.us_g AND rul_areas.id_agency='3' AND rul_areas.id_area=orders.area OR orders.user_id ='0' AND orders.us_g='0' " ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2014, 18:46:03 |
|
||
|
Как сделать оптимизацию запроса?
|
|||
|---|---|---|---|
|
#18+
Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. Оформил в тэг, отформатировал и расставил скобки. Теперь можно хоть что-то увидеть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2014, 18:57:45 |
|
||
|
|

start [/forum/topic.php?fid=47&msg=38766519&tid=1834132]: |
0ms |
get settings: |
8ms |
get forum list: |
14ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
57ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
47ms |
get tp. blocked users: |
1ms |
| others: | 197ms |
| total: | 338ms |

| 0 / 0 |
