У меня есть мнение, что ведьма работает так:
CREATE VIEW v_myView as SELECT * FROM(
(SELECT a,b,c,d FROM table1)
UNION ALL
(SELECT a,b,c,d FROM table2)
UNION ALL
(SELECT a,b,c,d FROM table3)
.
.
.)
Когда я использую представление, я фильтрую его так:
SELECT * FROM v_myView WHERE a=x
Пока это работает, это занимает час (реальный час, не фигурально говоря). если я сделаю такой запрос:
SELECT * FROM(
(SELECT a,b,c,d FROM table1 WHERE a=x)
UNION ALL
(SELECT a,b,c,d FROM table2 WHERE a=x)
UNION ALL
(SELECT a,b,c,d FROM table3 WHERE a=x)
.
.
.)
это занимает минуту. это заставило меня задуматься, есть ли способ заставить MySql делать это автоматически, а это означает, что команда WHERE
будет работать до того, как будет выбрана каждая таблица.