4shared

Autor: Vitor Jr.

Section 1: MySQL Architecture (10%) – How MySQL Uses Disk Space

MySQL utiliza espaço em disco de várias formas, primeiramente para diretórios e arquivos que estão localizados em um único local conhecido como diretório de dados do servidor (server’s data directory). O processo servidor utiliza o diretório de dados para armazenamentos como segue: Diretórios de databases. Cada database corresponde a um único diretório abaixo do diretório de dados, independente de qual tipo de tabelas você cria no database. Por exemplo, um database é identificado por um único diretório, não importa se ele contém tabelas do tipo MyISAM, InnoDB ou uma mistura de ambas. Arquivos de formato tabela (extensão .frm) que contém a descrição da estrutura de uma tabela. Cada tabela possui seu próprio arquivo .frm, localizado no seu respectivo diretório de database. Isso é fato, não importa o mecanismo de armazenamento utilizado para a tabela. Arquivos de dados e arquivos de índices são criados para cada tabela por alguns mecanismos de armazenamento e colocados no diretório do database apropriado. Por exemplo, o mecanismo MyISAM, cria um arquivo de dados e um arquivo de índices para cada tabela. O mecanismo de armazenamento InnoDB possui seu próprio arquivo de tablespace e seus arquivos de log. O arquivo de tablespace contém informações de dados e índices para todas as tabelas InnoDB, assim como os logs de undo que são necessários para efetuar o rollback de transações. Os arquivos de log gravam informações sobre...

Read More

Section 1: MySQL Architecture (10%) – The SQL Parser and Storage Engine Tiers

Um cliente recupera dados de uma tabela, ou altera dados em uma tabela, através de requisições para o servidor, em forma de comandos SQL, como SELECT, INSERT ou DELETE. O servidor executa cada instrução usando um modelo de processamento de duas camadas: A camada superior compreende as fases de parser and optimizer (analisar e optmizar). O servidor analisa cada instrução para ver que tipo de requisição se trata, depois utiliza o optimizador para determinar a maneira mais eficiente para a execução da instrução. Entretanto, esta camada não interage diretamente com as tabelas referenciadas na instrução SQL. A camada inferior compreende um conjunto de mecanismos de armazenamento. O servidor utiliza uma arquitetura modular: Cada mecanismo de armazenamento é um módulo de software a ser utilizado para controlar a tabelas de um tipo particular. O mecanismo de armazenamento associada a tabela acessa a mesma diretamente para armazenar ou recuperar dados. MyISAM, MEMORY, e InnoDB são alguns dos mecanismos disponíveis. A utilização dessa abordagem modular permite que os mecanismos de armazenamento (engines) possam ser facilmente inclusos no servidor no momento da configuração. Em grande parte, a camada de SQL é livre de dependências em qual mecanismo de armazenamento gerencia a tabela. Isto significa que os clientes normalmente não precisam se preocupar quais são os mecanismos de armazenamento envolvidos no processamento de instruções SQL, e pode acessar e manipular tabelas utilizando as mesmas...

Read More

Section 1: MySQL Architecture (10%) – Communication Protocols

Um cliente MySQL pode se conectar ao processo servidor rodando na mesma máquina. Esta seria uma conexão local. Um cliente ainda pode se conectar em um processo rodando em outra máquina, sendo assim uma conexão remota. O MySQL suporta conexões entre servidor e cliente usando diversos protocolos, como mostrado logo abaixo: Protocolo Tipos de Conexão Sistema Operacional Suportado TCP/IP Local e remota Todos Unix socket file Apenas local Apenas Unix Named pipe Apenas local Apenas Windows Shared memory Apenas local Apenas Windows Alguns protocolos podem se conectar a ambos (processo servidor local ou remoto). Alguns apenas para conexões locais. E alguns ainda são exclusivos de um único sistema operacional. Conexões do tipo TCP/IP são suportadas por qualquer servidor MySQL, a menos que o servidor seja iniciado com o parâmetro –skip-networking. Conexões do tipo Unix socket file são suportadas por todos os processos servidores Unix. Conexões do tipo named pipe são suportadas apenas no Windows. E apenas se for utilizado um dos processos servidores que possua -nt no seu nome (mysql-nt, mysql-max-nt). Named pipes estão por padrão desabilitados. Para habilita-los é necessário iniciar o processo servidor -nt com a opção –enable-named-pipe. Conexões do tipo shared memory são suportadas apenas no Windows e estão desabilitadas por padrão. Para habilita-las é necessário iniciar o processo servidor com a opção –shared-memory. Na perspectiva do cliente: Um cliente executando no mesmo host onde o...

Read More

Section 1: MySQL Architecture (10%) – Client/Server Overview

O MySQL funciona utilizando uma arquitetura cliente/servidor. O servidor é o processo central que gerencia o banco de dados. Os processos cliente conectam-se ao banco de dados para consultar ou modificar dados. O MySQL também inclui utilitários não-clientes e scripts. Sendo assim uma instalação completa do MySQL é composta de três partes: MySQL server – Esse é o processo mysqld que gere as bases de dados e tabelas. Existem duas distribuições: as pré-compiladas (servidor pronto para ser executado com os recursos de que necessitam) ou a opção para se compilar manualmente. Client programs – São os programas que se comunicam com o servidor, enviando solicitações a ele através de uma conexão de rede. Por exemplo você pode usar o programa cliente para enviar uma solicitação ao servidor, e o servidor retorna os resultados da consulta. Os programas cliente são programas do tipo character que exibem a saída no terminal. MySQL AB também produz clientes que exibem uma interface gráfica. MySQL Query Browser é um cliente para interagir com o servidor e executar análise de dados. MySQL Administrator para a gestão do próprio servidor. Non-client utility programs – Programas que geralmente são utilizados para propósitos especiais e não e não atuam como clientes do servidor, ou seja, não se conectarão ao servidor. Por exemplo, mysqld_safe é um script para iniciar e monitorar o servidor. myisamchk é um utilitário independente para...

Read More
Follow

Get every new post delivered to your Inbox

Join other followers: