SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 18.04.2011 17:41:35

yaroslav
Участник
Зарегистрирован: 18.04.2011
Сообщений: 1

Очень простой , но очень медленный запрос

всем доброго времени суток. У меня есть ОЧЕНЬ простой запрос, который почему то выполняется ОЧЕНЬ долго (около 5 минут). при это в табличках порядка 100 000 записей:


SELECT br.bar_id         AS bar
     , br.sending_time AS activity_date
     , br.order_id AS activity_number      
     , br.order_status AS activity_event
     , br.`TYPE` AS activity_type
     , br.quantity     AS size
     , br.order_type terms      
     , br.price         AS price
     , br.price_field    AS price_field
     , bo.position AS activity_position    
     , br.report_signal      AS source
     , br.simulation_result_id AS simulation_result_id    

 FROM backtesting_reports br
     , `backtesting_orders` bo
 WHERE br.`order_id` = bo.`id`
ORDER BY br.order_id , (CASE order_status WHEN 0 THEN 3
                      WHEN 2 THEN 2
                      ELSE 4
                      END);
                     

 

Неактивен

 

#2 19.04.2011 05:38:21

verybadbug
Участник
Зарегистрирован: 17.02.2010
Сообщений: 11

Re: Очень простой , но очень медленный запрос

Попробуйте без ORDER BY. Если будет медленно - дело в индексах, иначе - в конструкции ORDER BY

Неактивен

 

#3 20.04.2011 21:04:53

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: Очень простой , но очень медленный запрос

Ответ близок к правильному smile Нужны индексы по backtesting_reports (order_id)
и backtesting_orders (id).

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson