Помогите оптимизировать запрос (400к строк)
От: Trup  
Дата: 23.10.06 07:05
Оценка:
База данных MySql

Опишу для начала что есть и что неободимо получить.

Есть таблица с записями(~400,000 строк, 17 колонок)
Интресиют 3 столбца
1. OrderID (не уникальный, обозначает название товара, т.е. один и тот же товар мог поступать несколько раз)
2. Save_Date (дата поступления в формате 'XXXX-XX-XX')
3. Save_Time (время поступления, число обозначающее кол-во чегото(!) предположительно чтото вроде секунд или долей секунд)

Необходимо найти самое последнее(первое) время поступления каждого OrderID (т.е. опрделенную запись для каждого OrderID).

Что я делал.

SELECT orderID, MAX(TO_DAYS(Save_Date)*24+Save_Time/10000) as time
FROM market_log
GROUP BY orderID
Здесь мы находим все правильно для каждого orderID

SELECT ML.orderID, ML.Save_Date, ML.Save_Time
FROM (первый запрос) as t1, market_log as ML
WHERE TO_DAYS(ML.Save_Date)*24+ML.Save_Time/10000=t1.time AND ML.orderID=t1.orderID
LIMIT 0,1000
Тут пытаюсь найти реальные Save_Date и Save_Time для каждого OrderID
В итоге запос просто "виснет" — немог дождаться окончания.

Пытался группировать по порядку столбцы, но также натыкался на очень длинное выполнение запроса.

1. Помогите оптимизировать или както подругому составить запрос.
2. Save_Time/10000 — как сделать разрядность выше у получаемого типа float .xx ?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.