this article is an introduction to working with database engines in MySQL.
About MySQL database engines
Database engines provide the underlying functionality for MySQL to work with and process data.
os dois motores de banco de dados MySQL mais comuns e populares são MyISAM e InnoDB. MyISAM é o motor padrão para MySQL para versões anteriores a 5.5.5, e funciona bem na maioria dos cenários. No entanto, dependendo de suas necessidades, há situações em que outro motor de banco de dados, como o InnoDB, pode ser a melhor escolha. Por exemplo, o InnoDB suporta transações, enquanto o MyISAM não. InnoDB também fornece suporte para chaves estrangeiras, enquanto MyISAM não.
Se você tem acesso root ao seu servidor, você tem controle completo sobre como E quando MySQL usa os vários motores de banco de dados. Você pode alterar o motor de banco de dados padrão, alterar o motor de banco de dados de uma tabela específica, e muito mais.
Determinar o padrão de mecanismo de banco de dados
Para determinar o padrão motor de base de dados para a sua instalação, digite o seguinte comando no mysql> linha de comandos:
SHOW ENGINES;
Uma lista de suporte para motores aparece, juntamente com uma breve descrição e as funcionalidades suportadas para cada motor. O motor por omissão da base de dados está marcado por omissão na coluna de suporte.
alterando o motor por omissão da base de dados
pode alterar o motor por omissão da base de dados para a sua instalação MySQL. Depois de fazer isso, todas as novas tabelas que você criar irá usar o novo motor de banco de dados (a menos que você definir explicitamente o motor durante a criação da tabela).
para alterar o motor por omissão da base de dados, siga estes passos:
- Use o seu editor de texto preferido para abrir o my.ficheiro cnf no seu servidor. A localização do meu.o ficheiro cnf depende da sua distribuição Linux:
- em CentOS e Fedora, o my.o ficheiro cnf está localizado no directório /etc.
- no Debian e Ubuntu, o my.o ficheiro cnf está localizado na pasta /etc / mysql.
- no my.ficheiro cnf, localiza a secção.
-
Adicione ou modifique a seguinte linha na secção. Substitua o motor pelo nome do motor que deseja usar por omissão:
default-storage-engine=ENGINE
Se estiver a activar o motor de base de dados InnoDB, dependendo da sua distribuição Linux poderá ter de desactivar a seguinte linha no my.ficheiro cnf:
skip-innodb
para fazer isto, basta adicionar um sinal de libra (#) ao início da linha, como se segue:
#skip-innodb
- Save the changes to the my.ficheiro cnf, e depois sair do editor de texto.
-
Reinicie o servidor MySQL usando o comando apropriado para a sua distribuição Linux:
- Para CentOS e Fedora, tipo:
service mysqld restart
-
Para o Debian e o Ubuntu, digite:
service mysql restart
- Para CentOS e Fedora, tipo:
- Para confirmar o novo padrão mecanismo de banco de dados, use o SHOW MOTORES de instrução SQL, como descrito na Determinação do padrão de mecanismo de banco de dados seção.
determinando o motor de base de dados actual de uma tabela
para determinar qual o motor que uma tabela de base de dados está a usar actualmente, digite o seguinte comando no mysql> prompt. Substituir a base de dados pelo nome da base de dados que deseja verificar:
SELECT TABLE_NAME, ENGINE FROM information_schema.TABLES where TABLE_SCHEMA = 'database';
Este comando mostra uma lista de todas as tabelas da base de dados, juntamente com o motor que cada tabela está a usar.
alterar o motor de base de dados de uma tabela
pode alterar o motor de base de dados para uma tabela que já exista. Por exemplo, a instrução SQL a seguir mostra como modificar uma tabela minha_tabela para usar o motor InnoDB:
ALTER TABLE myTable ENGINE = InnoDB;
Criar uma nova tabela com um específico mecanismo de banco de dados
Quando você criar uma tabela em um banco de dados, você pode definir explicitamente o seu mecanismo de banco de dados (caso contrário, o MySQL usa o padrão motor de base de dados durante a criação da tabela). Por exemplo, a seguinte declaração SQL mostra como criar uma tabela chamada myTable que usa o motor de banco de dados MyISAM:
CREATE TABLE myTable ( id INT NOT NULL AUTO_INCREMENT, PRIMARY KEY (id), data VARCHAR(20) NOT NULL ) ENGINE MyISAM;
Simiarly, to create a table that uses the InnoDB database engine, you could use the following SQL statement:
CREATE TABLE myTable ( id INT NOT NULL AUTO_INCREMENT, PRIMARY KEY (id), data VARCHAR(20) NOT NULL ) ENGINE InnoDB;