Dit artikel is een inleiding tot werken met database engines in MySQL.
over MySQL-databasemotoren
Databasemotoren bieden de onderliggende functionaliteit waarmee MySQL kan werken en gegevens kan verwerken.
De twee meest voorkomende en populaire MySQL database engines zijn MyISAM en InnoDB. MyISAM is de standaard engine voor MySQL voor versies eerder dan 5.5.5, en werkt goed in de meeste scenario ‘ s. 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 buitenlandse sleutels, terwijl MyISAM dat niet doet.
als je root toegang hebt tot je server, 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.
bepalen van de standaard database-engine
om de standaard database-engine voor uw installatie te bepalen, typt u het volgende commando op de MySQL> prompt:
SHOW ENGINES;
een lijst met ondersteunde engines verschijnt, samen met een korte beschrijving en de ondersteunde functies voor elke engine. De standaard database-engine is standaard gemarkeerd in de kolom ondersteuning.
de standaard database engine wijzigen
U kunt de standaard database engine voor uw MySQL installatie wijzigen. Nadat je dit hebt gedaan, zullen alle nieuwe tabellen die je maakt de nieuwe database engine gebruiken (tenzij je de engine expliciet hebt ingesteld tijdens het aanmaken van de tabel).
om de standaard database-engine te wijzigen, volgt u deze stappen:
- gebruik de gewenste teksteditor om de Mijn te openen.cnf-bestand op uw server. De locatie van de mijn.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 mijn.cnf bestand bevindt zich in de/etc / mysql directory.
- In de my.cnf-bestand, Zoek de sectie.
-
De volgende regel in de sectie toevoegen of wijzigen. Vervang ENGINE door 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 mijn uitschakelen.cnf-bestand:
skip-innodb
om dit te doen, voegt u een pound-teken ( # ) toe aan het begin van de regel, als volgt:
#skip-innodb
- sla de wijzigingen in de Mijn op.cnf-bestand, en sluit de teksteditor.
-
Herstart de MySQL-server met het juiste commando voor uw Linux-distributie:
- voor CentOS en Fedora typt u:
service mysqld restart
-
Voor Debian en Ubuntu typt u:
service mysql restart
- voor CentOS en Fedora typt u:
- om de nieuwe standaard Database-Engine te bevestigen, gebruikt u het SQL-statement toon engines zoals beschreven in de sectie bepalen van de standaard database-engine.
bepalen van de huidige database-engine van een tabel
om te bepalen welke engine een database-tabel momenteel gebruikt, typt u het volgende commando op de MySQL> prompt. Vervang de database door de naam van de database die u wilt controleren:
SELECT TABLE_NAME, ENGINE FROM information_schema.TABLES where TABLE_SCHEMA = 'database';
Dit commando toont een lijst 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. Het volgende SQL-statement laat bijvoorbeeld zien hoe een tabel met de naam myTable kan worden gewijzigd om de InnoDB-engine te gebruiken:
ALTER TABLE myTable ENGINE = InnoDB;
een nieuwe tabel aanmaken 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 aanmaken van een tabel). Het volgende SQL-statement laat bijvoorbeeld zien hoe u een tabel met de naam myTable maakt die gebruik maakt van de MyISAM database engine:
CREATE TABLE myTable ( id INT NOT NULL AUTO_INCREMENT, PRIMARY KEY (id), data VARCHAR(20) NOT NULL ) ENGINE MyISAM;
Simiarly, om een tabel te maken die de InnoDB database engine gebruikt, kunt u het volgende SQL statement gebruiken:
CREATE TABLE myTable ( id INT NOT NULL AUTO_INCREMENT, PRIMARY KEY (id), data VARCHAR(20) NOT NULL ) ENGINE InnoDB;