Ordem de execução detalhada das instruções MySQL

 

A instrução MySQL é dividida em 11 etapas. Conforme marcado na figura abaixo, a primeira operação é sempre a operação FROM e a última é a operação LIMIT. Cada uma dessas operações produzirá uma tabela virtual, usada como entrada de processamento, mas essas tabelas virtuais são transparentes para o usuário, mas somente a última tabela virtual será retornada como resultado. Se nenhuma cláusula for especificada na instrução, as etapas correspondentes serão ignoradas

 

Vamos analisar especificamente cada estágio do processamento da consulta
: 1. FORM: Calcule o produto cartesiano da tabela esquerda e da tabela direita de FROM. Gere a tabela virtual VT1
2. Filtro LIGADO: LIGADO para a tabela virtual VT1, somente as linhas que atendem à <condição de associação> serão registradas
na tabela virtual VT2.
3. JOIN: se OUTER JOIN (como junção esquerda, junção direita) for especificado, as linhas não correspondentes na tabela reservada serão adicionadas como linhas externas à tabela virtual VT2, resultando na tabela virtual VT3, a cláusula rug from contém duas Se houver mais de uma tabela, as três etapas das etapas 1 a 3 serão repetidas para o resultado VT3 da conexão de junção anterior e a tabela seguinte até que todas as tabelas sejam processadas.
4. ONDE: Execute a filtragem da condição WHERE na tabela virtual VT3. Somente registros que correspondem a <where-condition> serão inseridos na tabela virtual VT4.
5. GRUPO POR: Agrupe os registros no VT4 de acordo com as colunas da cláusula agrupar por para gerar o VT
5. 6. CUBE | ROLLUP: Execute a operação de cubo ou rollup na tabela VT5 para gerar a tabela VT6
7. HAVING: Yes A tabela virtual VT6 foi aplicada à filtragem e apenas os registros que correspondem a <condição de comportamento> serão inseridos na tabela virtual VT7. 

Publicado 568 artigos originais · Gosto 180 · Visita mais de 180.000

Acho que você gosta

Origin blog.csdn.net/Delicious_Life/article/details/105616621
Recomendado
Clasificación