У меня есть индексы 800M и я приказал MySQL использовать 1500M RAM.После запуска MySQL он использует 1000M на Windows 7 x64.
Я хочу выполнить этот запрос:
SELECT oo.* FROM table o
LEFT JOIN table oo ON (oo.order = o.order AND oo.type="SHIPPED")
WHERE o.type="ORDERED" and oo.type IS NULL
Он находит все товары, которые еще не были отправлены.План выполнения говорит мне это:
фотография http://i56.tinypic.com/23s6b11.png
Мои индексы:
type_order
: многократный индекс с type
и order
order_type
с order
в качестве первого значения индекса, за которым следует type
Так что MySQL должен использовать индекс type_order
из ОЗУ, а затем выбрать несколько записейс индексом order_type
.Я ожидаю только около 1000 не доставленных товаров, поэтому этот запрос должен быть очень быстрым, но это не так.Диски сходят с ума ....
Что я делаю не так?