Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Mysql - EXPLAIN SELECT from a VIEW sucht in allen Zeilen der Haupttabelle

Weil eine Ansicht nicht vorkompiliert ist Abfrage oder ein gespeichertes Ergebnis , es ist ein vordefiniertes Anfrage. Es führt die SELECT-Anweisungen in der Ansicht jedes Mal aus . Andernfalls würde eine Ansicht nie aktualisiert werden. Eine Ansicht ist eine Darstellung einer Abfrage. Es ist eine bequeme Abkürzung für den Programmierer, aber nicht für die Maschine.

Mit anderen Worten, wenn Sie

SELECT something FROM YourView

Und YourView wird definiert durch

CREATE VIEW YourView AS SELECT stuff FROM sometable 
INNER JOIN othertable ON sometable.column = othertable.column

Was tatsächlich ausgeführt wird, ist

 SELECT something FROM 
(SELECT stuff FROM sometable 
INNER JOIN othertable ON sometable.column = othertable.column)

Wenn Sie ein Ergebnis speichern möchten, sollten Sie eine aggregierte Tabelle verwenden.