Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Mysql - EXPLAIN SELECT de uma VIEW está procurando em todas as linhas da tabela principal


Como uma visualização não é um pré-compilado consulta ou um resultado armazenado , é um predefinido consulta. Ele executa as instruções SELECT na visão, todas as vezes . Caso contrário, uma visualização nunca seria atualizada. Uma visualização é uma representação de uma consulta. É uma abreviação conveniente para o programador, mas não para a máquina.

Em outras palavras, quando você
SELECT something FROM YourView

E YourView é definido por
CREATE VIEW YourView AS SELECT stuff FROM sometable 
INNER JOIN othertable ON sometable.column = othertable.column

o que está realmente sendo executado é
 SELECT something FROM 
(SELECT stuff FROM sometable 
INNER JOIN othertable ON sometable.column = othertable.column)

Se você deseja armazenar um resultado, deve usar uma tabela agregada.