Dit artikel is een inleiding tot het werken met database-engines in MySQL.
Om enkele van de procedures in dit artikel te volgen, moet u root-toegang tot de server hebben.Over MySQL-database-engines
Database-engines bieden de onderliggende functionaliteit voor MySQL om met gegevens te werken en gegevens te verwerken.
De twee meest voorkomende en populaire MySQL-database-engines zijn MyISAM en InnoDB . MyISAM is de standaardengine voor MySQL voor eerdere versies dan 5.5.5 en functioneert in de meeste scenario's goed. Afhankelijk van uw behoeften zijn er echter situaties waarin een andere database-engine, zoals InnoDB, de betere keuze kan zijn. InnoDB ondersteunt bijvoorbeeld transacties, terwijl MyISAM dat niet doet. InnoDB biedt ook ondersteuning voor externe sleutels, terwijl MyISAM dat niet doet.
Als je root-toegang tot je server hebt, heb je volledige controle over hoe en wanneer MySQL de verschillende database-engines gebruikt. U kunt de standaard database-engine wijzigen, de database-engine van een specifieke tabel wijzigen en meer.
In dit artikel wordt ervan uitgegaan dat u al weet hoe u MySQL kunt openen vanaf de opdrachtregel met behulp van de mysql programma. Als je niet weet hoe je dit moet doen, lees dan eerst dit artikel.De standaard database-engine bepalen
Om de standaard database-engine voor uw installatie te bepalen, typt u de volgende opdracht op de mysql> prompt:
SHOW ENGINES;
Er verschijnt een lijst met ondersteunde engines, samen met een korte beschrijving en de ondersteunde functies voor elke engine. De standaard database-engine is gemarkeerd als DEFAULT in de Ondersteuning kolom.
De standaard database-engine wijzigen
U kunt de standaard database-engine voor uw MySQL-installatie wijzigen. Nadat u dit hebt gedaan, gebruiken alle nieuwe tabellen die u maakt de nieuwe database-engine (tenzij u de engine expliciet instelt tijdens het maken van tabellen).
Volg deze stappen om de standaard database-engine te wijzigen:
- Gebruik de teksteditor van uw voorkeur om de my.cnf . te openen bestand op uw server. De locatie van de my.cnf bestand hangt af van je Linux-distributie:
- Op CentOS en Fedora, de my.cnf bestand bevindt zich in de /etc directory.
- Op Debian en Ubuntu, de my.cnf bestand bevindt zich in de /etc/mysql directory.
- In de mijn.cnf bestand, zoek de [mysqld] sectie.
-
Voeg de volgende regel toe of wijzig deze in de [mysqld] sectie. Vervang MOTOR met de naam van de engine die u als standaard wilt gebruiken:
default-storage-engine=ENGINE
Als u de InnoDB-database-engine inschakelt, moet u, afhankelijk van uw Linux-distributie, mogelijk de volgende regel in de my.cnf uitschakelen bestand:
skip-innodb
Voeg hiervoor een hekje toe (# ) naar het begin van de regel, als volgt:
#skip-innodb
- Sla de wijzigingen op in de my.cnf bestand en sluit vervolgens de teksteditor.
-
Start de MySQL-server opnieuw met de juiste opdracht voor uw Linux-distributie:
- Voor CentOS en Fedora typt u:
service mysqld restart
-
Typ voor Debian en Ubuntu:
service mysql restart
- Voor CentOS en Fedora typt u:
- Om de nieuwe standaard database-engine te bevestigen, gebruikt u de MOTOREN TONEN SQL-instructie zoals beschreven in de sectie Bepalen van de standaard database-engine.
De huidige database-engine van een tabel bepalen
Om te bepalen welke engine een databasetabel momenteel gebruikt, typt u de volgende opdracht op de mysql> snel. Vervang database met de naam van de database die u wilt controleren:
SELECT TABLE_NAME, ENGINE FROM information_schema.TABLES where TABLE_SCHEMA = 'database';
Deze opdracht geeft een lijst weer van elke tabel in de database, samen met de engine die elke tabel gebruikt.
De database-engine van een tabel wijzigen
U kunt de database-engine wijzigen voor een tabel die al bestaat. De volgende SQL-instructie laat bijvoorbeeld zien hoe u een tabel met de naam myTable . kunt wijzigen om de InnoDB-engine te gebruiken:
ALTER TABLE myTable ENGINE = InnoDB;
Een nieuwe tabel maken met een specifieke database-engine
Wanneer u een tabel in een database maakt, kunt u expliciet de database-engine instellen (anders gebruikt MySQL de standaard database-engine tijdens het maken van tabellen). De volgende SQL-instructie laat bijvoorbeeld zien hoe u een tabel maakt met de naam myTable die de MyISAM-database-engine gebruikt:
CREATE TABLE myTable ( id INT NOT NULL AUTO_INCREMENT, PRIMARY KEY (id), data VARCHAR(20) NOT NULL ) ENGINE MyISAM;
Op dezelfde manier kunt u de volgende SQL-instructie gebruiken om een tabel te maken die de InnoDB-database-engine gebruikt:
CREATE TABLE myTable ( id INT NOT NULL AUTO_INCREMENT, PRIMARY KEY (id), data VARCHAR(20) NOT NULL ) ENGINE InnoDB;
Meer informatie
- Ga voor meer informatie over de MyISAM-engine naar http://dev.mysql.com/doc/refman/5.5/en/myisam-storage-engine.html.
- Ga voor meer informatie over de InnoDB-engine naar http://dev.mysql.com/doc/refman/5.5/en/innodb-storage-engine.html.