Создание индексов после Explain

Ekklipce

Новичок
Создание индексов после Explain

после explain такой результат
table type possible_keys key key_len ref rows Extra
general range date_issue date_issue 3 NULL 13771 where used; Using temporary; Using filesort
price_size ref date_change,part,id,color part 5 general.part 10 where used

самое важное что possible_keys = date_change,part,id,color, key = part

то есть создавать индексы на 4 колонки под именем part
или "даёшь каждой колонке по индексу" :) ?
 

Ekklipce

Новичок
SELECT categories.category as legend, general.magazine AS mag, ( general.x * general.y * general.block) AS square, SUM( price_size.price ) AS coun , general.page AS page

FROM general, price_size, categories
WHERE categories.id = general.category
AND general.part = price_size.part
AND general.color = price_size.color
AND general.magazine = price_size.id

AND (( general.category = '119' AND general.date_issue BETWEEN '2004-01-01' AND '2004-10-01' )
OR ( general.category = '703' AND general.date_issue BETWEEN '2004-01-01' AND '2004-10-01' )
OR ( general.category = '702' AND general.date_issue BETWEEN '2004-01-01' AND '2004-10-01' )
OR ( general.category = '697' AND general.date_issue BETWEEN '2004-01-01' AND '2004-10-01' )
OR ( general.category = '207' AND general.date_issue BETWEEN '2004-01-01' AND '2004-10-01' )
OR ( general.category = '111' AND general.date_issue BETWEEN '2004-01-01' AND '2004-10-01' )
OR ( general.category = '118' AND general.date_issue BETWEEN '2004-01-01' AND '2004-10-01' ))

AND general.date_issue > price_size.date_change GROUP BY legend ORDER BY coun DESC

Help

какие индексы или мультииндексы (на мног столбцов надо создать ?)

-~{}~ 29.09.04 11:03:

правилные индексы для general и category сделал

для price_size идет полный перебор.. :-((((
 

MadMike

Новичок
Наверное, чтобы было совсем быстро, целесообразно будет сделать categories.id = general.category - один индекс,
general.part = price_size.part и general.color = price_size.color - второй(по два столбца в каждом индексе), general.magazine = price_size.id - третий. Надеюсь, я понятно выразился.
 

Ekklipce

Новичок
Originally posted by MadMike
Наверное, чтобы было совсем быстро, целесообразно будет сделать categories.id = general.category - один индекс,
general.part = price_size.part и general.color = price_size.color - второй(по два столбца в каждом индексе), general.magazine = price_size.id - третий. Надеюсь, я понятно выразился.
что т я не вразумел.. разве можно делать индексы между двумя таблицами ?.. вроде ж все в одной только
 

MadMike

Новичок
Я был уверен, что ты не поймешь.
Я имел в виду, что в каждой таблице делаешь соответствующие индексы.
Список - по индексу в строчке:
categories.id;
general.category;
general.part и general.color;
price_size.part и price_size.color;
general.magazine;
price_size.id;
 

Ekklipce

Новичок
Originally posted by MadMike
Я был уверен, что ты не поймешь.
Я имел в виду, что в каждой таблице делаешь соответствующие индексы.
Список - по индексу в строчке:
categories.id;
general.category;
general.part и general.color;
price_size.part и price_size.color;
general.magazine;
price_size.id;
Это я уже и сам сделал.. только несколько расширено, ибо запросов много - и не всегда таких как сверху.. ускорило
 
Сверху