Dez
Новичок
улучшение запроса.
Привет.
В процессе подготовки запроса создаю его вида:
[SQL]
SELECT mm.idm AS mname, rr.idr AS rname, SUM(ss.sumr) AS ssum
FROM sellings ss
LEFT JOIN medicines mm ON ss.idm = mm.idm
LEFT JOIN regions rr ON ss.idr = rr.idr
WHERE ss.idm IN (101331,101426,102528,106257,110787,111107,111283,111363,111409,111538,111648,116152,116308,120840,121478,121752,122038,123484,123795,124172,124505,124506,125064,125669,126041,126337,127374,127501,127594,127624,127882,128214,129166,131904,132031,133032,133314,133911,134251,134300,135069,135762,136846,143915,144373,144480,146403,148411,151147,155136,156547)
GROUP BY mm.name, rr.name
[/SQL]
- и это еще цветочки
... Поле ss.idm проиндексировано.
Данные эти подготавливаю на php - вытягиваю из древовидной структуры.
Не подскажите - такая конструкция с IN - потенциально не узкое ли место?
Или лучше попробовать что то с созданием временной таблицы с этими данными
и соединения с текущей выборкой?
Спасибо.
Привет.
В процессе подготовки запроса создаю его вида:
[SQL]
SELECT mm.idm AS mname, rr.idr AS rname, SUM(ss.sumr) AS ssum
FROM sellings ss
LEFT JOIN medicines mm ON ss.idm = mm.idm
LEFT JOIN regions rr ON ss.idr = rr.idr
WHERE ss.idm IN (101331,101426,102528,106257,110787,111107,111283,111363,111409,111538,111648,116152,116308,120840,121478,121752,122038,123484,123795,124172,124505,124506,125064,125669,126041,126337,127374,127501,127594,127624,127882,128214,129166,131904,132031,133032,133314,133911,134251,134300,135069,135762,136846,143915,144373,144480,146403,148411,151147,155136,156547)
GROUP BY mm.name, rr.name
[/SQL]
- и это еще цветочки

Данные эти подготавливаю на php - вытягиваю из древовидной структуры.
Не подскажите - такая конструкция с IN - потенциально не узкое ли место?
Или лучше попробовать что то с созданием временной таблицы с этими данными
и соединения с текущей выборкой?
Спасибо.