Com SQLServer arquitetura inclui um componente que é muito semelhante, você pode consultar https://blog.csdn.net/Hehuyi_In/article/details/94746160 sobre a mente brilhante.
A figura de https://www.mysql.com/common/images/PSEA_diagram.jpg
Você pode ver a arquitetura MySQL Server também é dividido em quatro camadas:
- camada de conexão de rede
- camada motor relacional (camada de serviço de núcleo)
- camada de mecanismo de armazenamento
- arquivo de camada física
, A camada de conectividade de rede primeiro
Connection Pool (pool de conexão)
- conexões de usuários de gerenciamento de buffer, rosqueamento, etc necessidade de necessidades de cache
- As contas de usuário, senhas e permissões de verificação tabela de biblioteca
Em segundo lugar, a camada mecanismo relacional (camada de serviço core)
Ele é dividido em quatro categorias (também SqlServer semelhantes):
- SQL Interface (SQL as interfaces)
- Analisador (analisador)
- Optimizer (otimizador de consulta)
- Cache & Amortecedores (cache)
1. Interface de SQL (interfaces SQL)
- Receber instrução SQL enviada pelo usuário e retorna um resultado de execução
2. Analisador (analisador)
- A instrução SQL analisado em uma estrutura de dados mysql saber
- Ao mesmo tempo resolverá verificação de sintaxe SQL
3. Optimizer (consulta optimizador)
- Para otimizar a instrução SQL, e selecionou um plano melhor execução (nota não necessariamente o melhor)
- Use estratégia para "escolher - Projeção - juntamente"
4. cache & tampões (tampão)
- Contém query_cache, cache de tabela, cache de disco, cache de chaves, cache e outros direitos
- O cache de consulta é usado principalmente para o motor MyISAM, e foi desativada na versão 8.0. Não faz sentido para o motor InnoDB, porque InnoDB tem seu próprio mecanismo conjunto de caching
- Note-se que estas funções são parte da camada de serviço, que faz parte do cache ainda precisa usar outro mecanismo de armazenamento
, A terceira camada de mecanismo de armazenamento
- Existem muitos tipos de MySQL mecanismo de armazenamento conectável, podem ser selecionados de acordo com.
- Tipos de referência O objectivo principal https://www.cnblogs.com/andy6/p/5789248.html
Em quarto lugar, a camada de arquivo físico
- Referência https://blog.csdn.net/Hehuyi_In/article/details/100592107 não repetir a coluna
Como os componentes acima trabalhar juntos? Olhe para o ciclo de vida de uma consulta simples no MySQL:
Cinco, MySQL consulta processo geral
- Conectores (ou seja, o cliente) inicia uma solicitação para a porta de escuta do servidor MySQL
- No Connection Piscina criar uma conexão, atribui um fio, verifique se o nome de usuário e senha para as permissões de tabela de banco de dados
- Se você abrir o query_cache ( 8,0 versão foi abandonada ), verifique se os dados são retornados diretamente, não prossiga para baixo
- SQL Interface de receber instrução SQL e passar Analisador de análise e teste de gramática
- Optimizer para otimizar e selecionar sql melhor plano de execução
- Chamada interface do mecanismo de armazenamento , mesas abertas, realizar consultas, se existe um correspondente cheques mecanismo de armazenamento de registros de cache do cache, há o retorno, se houver, continuar
- Disco para arquivos físicos para encontrar dados
- Quando você encontrar os dados necessários, primeiro write-back mecanismo de armazenamento de cache . Se você abrir o query_cache , vai escrever
- Por interface SQL dados de retorno para o cliente
- Feche a tabela
- Fechar Tópico
- Fechar a conexão
simples compreensão da arquitetura MySQL Server e consulta do processo geral, a próxima arquitetura estudo InnoDB mecanismo de armazenamento.
Referência: "MySQL Performance Tuning pirâmide lei"