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 declarações, não importando qual o mecanismo de armazemanento a gerencia-lo. As exceções a esta independência-de-mecanismo-de-armazenamento para SQL incluem as que seguem:

  • A instrução CREATE TABLE possui uma opção ENGINE que possibilita a escolha de qual mecanismo de armazenamento por tabela. ALTER TABLE possui a opção ENGINE que possibilita alterar o mecanismo de armazenamento para outro que o atual.
  • Alguns tipos de índices estão disponíveis apenas para certos tipos de mecanismo de armazenamento. Por exemplo, apenas o mecanismo MyISAM suporta índices do tipo full-text ou spartial indexes.
  • COMMIT e ROLLBACK tem efeito apenas para tabelas gerenciadas por mecanismos de armazenamento transacionais, como o InnoDB.