Представление в MySQL имеет плохую производительность из-за обработки предложения where

У меня проблема с моей базой данных MySQL. Я получил дорогой запрос с некоторыми объединениями. Но я всегда запускаю его для одного конкретного идентификатора, что делает выполнение очень быстрым.

Теперь я помещаю этот запрос в представление. Если я запрашиваю это представление и использую предложение where с идентификатором в представлении, кажется, что MySQL сначала загружает все записи, а затем применяет мое предложение where. Это приводит к очень плохой производительности.

Есть ли возможность разрешить MySQL использовать также мои предложения where в представлении перед запросом всех записей?

Большое спасибо и ура, Аргонитас


person moritz.vieli    schedule 04.10.2014    source источник
comment
Можете ли вы опубликовать свой запрос? Мы можем только догадываться, не видя кода.   -  person scunliffe    schedule 04.10.2014
comment
Он работает со всеми запросами, которые используют идентификатор. Например: выберите * из вкладки 1 левого соединения вкладки 2 на вкладке 1.id = tab2.tab1_id, где tab1.some_id = 2; быстро. но это медленно: создайте или замените представление test_v, поскольку выберите * из вкладки 1, соединив вкладку 2 на вкладке 1.id = tab2.tab1_id; выберите * из test_v, где some_id = 2;   -  person moritz.vieli    schedule 04.10.2014
comment
Хм, похоже, MySQL не позволяет добавлять индексы в представления, такие как SQLServer или Oracle dev.mysql.com/doc/refman/5.0/en/view-restrictions.html обычно индексированное представление работает очень хорошо, но в MySQL оно действует как производная временная таблица, а не предоставить какие-либо специальные возможности индексации. Есть ли у вас возможность создать другую таблицу?... И/или вам нужно представление, или вы просто пытались упростить последующие запросы?   -  person scunliffe    schedule 04.10.2014
comment
Все это говорит о том, что на основе этого ответа могут быть некоторые варианты: stackoverflow.com/a/13945079/6144   -  person scunliffe    schedule 04.10.2014
comment
Что ж, спасибо, Сканлифф! В этой теме точно описана проблема. Не нашел, хотя несколько часов искал похожие проблемы...   -  person moritz.vieli    schedule 04.10.2014
comment
Связанная ссылка.   -  person crokusek    schedule 17.11.2014