
Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
03.10.2014, 16:10:22
|
|||
|---|---|---|---|
|
|||
Как сделать оптимизацию запроса? |
|||
|
#18+
Привет всем! Есть следующий запрос к БД который делает выборку заказов магазина: Код: php 1. 2. 3. 4. 5. 6. 7. 8. Запрос выполняется очень медленно - около 40 секунд. Методом тыка определил что это изза 2 последних строчек(это заказы незарегистрированых пользователей): Код: php 1. 2. Как оптимизировать, ускорить время обработки? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
03.10.2014, 16:30:18
|
|||
|---|---|---|---|
Как сделать оптимизацию запроса? |
|||
|
#18+
tegs89, 1. по любому почитайте и используйте EXPLAIN для таких разборок 2. когда идет смесь AND OR -- полезно использовать скобки для ясности. 3. Часто (не всегда) запросы с OR лучше переписывать на два отдельных запроса и потом делать UNION ALL. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
03.10.2014, 16:36:59
|
|||
|---|---|---|---|
Как сделать оптимизацию запроса? |
|||
|
#18+
tegs89 Код: php 1. Это что за таинственный фильтр? Выведите содержимое переменной $sql_ord непосредственно перед выполнением запроса и покажите нам. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
03.10.2014, 17:47:16
|
|||
|---|---|---|---|
|
|||
Как сделать оптимизацию запроса? |
|||
|
#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:49:39
|
|||
|---|---|---|---|
|
|||
Как сделать оптимизацию запроса? |
|||
|
#18+
Кстати пробовал ALTER TABLE order ADD INDEX(user_id, us_g). Лучше не стало. Интересно, почему? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
03.10.2014, 17:52:01
|
|||
|---|---|---|---|
Как сделать оптимизацию запроса? |
|||
|
#18+
tegs89Не подскажите хороший сайт с документацией?Лучше оригинальной документации еще ничего не придумали. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
03.10.2014, 17:53:23
|
|||
|---|---|---|---|
Как сделать оптимизацию запроса? |
|||
|
#18+
tegs89Что вы имеете ввиду вывести $sql_ord перед выполнением? Не совсем понял.Именно это и имею в виду. Вывести содержимое переменной $sql_ord куда угодно - на страницу, в файл и т.п. А потом скопировать сюда. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
03.10.2014, 17:54:25
|
|||
|---|---|---|---|
Как сделать оптимизацию запроса? |
|||
|
#18+
tegs89$filter - переменная добавления поиска для фильтра(если исп.фильтр):А зачем его три раза в запрос совать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
03.10.2014, 18:05:55
|
|||
|---|---|---|---|
|
|||
Как сделать оптимизацию запроса? |
|||
|
#18+
miksofttegs89Что вы имеете ввиду вывести $sql_ord перед выполнением? Не совсем понял.Именно это и имею в виду. Вывести содержимое переменной $sql_ord куда угодно - на страницу, в файл и т.п. А потом скопировать сюда. Вы имеет ввиду через var_dump() скопировать что оно выводит? [quot miksoft]tegs89А зачем его три раза в запрос совать? Вы правы, хватило бы и 2. Но смысл оно смысл не меняет, пробовал. Из за посдених 2 строк Код: php 1. 2. грузит около 40 секунд ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
03.10.2014, 18:09:21
|
|||
|---|---|---|---|
Как сделать оптимизацию запроса? |
|||
|
#18+
tegs89Вы имеет ввиду через var_dump() скопировать что оно выводит?Ну можно и так. Но, наверное, хватило бы и простого echo. tegs89Вы правы, хватило бы и 2.А почему 2? Хватило бы и одного. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
03.10.2014, 18:46:03
|
|||
|---|---|---|---|
|
|||
Как сделать оптимизацию запроса? |
|||
|
#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:57:45
|
|||
|---|---|---|---|
Как сделать оптимизацию запроса? |
|||
|
#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. Оформил в тэг, отформатировал и расставил скобки. Теперь можно хоть что-то увидеть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=47&mobile=1&tid=1834132]: |
0ms |
get settings: |
7ms |
get forum list: |
11ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
20ms |
get topic data: |
6ms |
get forum data: |
2ms |
get page messages: |
27ms |
get tp. blocked users: |
1ms |
| others: | 209ms |
| total: | 287ms |

| 0 / 0 |
