Acest articol este o introducere în lucrul cu motoarele de baze de date în MySQL.
despre motoarele de baze de date MySQL
motoarele de baze de date oferă funcționalitatea de bază pentru ca MySQL să lucreze și să proceseze date.
cele mai comune și populare motoare de baze de date MySQL sunt MyISAM și InnoDB. MyISAM este motorul implicit pentru MySQL pentru versiunile anterioare 5.5.5, și funcționează bine în cele mai multe scenarii. Cu toate acestea, în funcție de nevoile dvs., există situații în care un alt motor de baze de date, cum ar fi InnoDB, poate fi alegerea mai bună. De exemplu, InnoDB acceptă tranzacții, în timp ce MyISAM nu. InnoDB oferă, de asemenea, suport pentru chei străine, în timp ce MyISAM nu.
Dacă aveți acces root la serverul dvs., aveți control complet asupra modului și momentului în care MySQL utilizează diferitele motoare de baze de date. Puteți modifica motorul bazei de date implicit, puteți modifica motorul bazei de date al unui anumit tabel și multe altele.
determinarea motorului de bază de date implicit
pentru a determina motorul de bază de date implicit pentru instalarea dvs., tastați următoarea comandă la promptul mysql>:
SHOW ENGINES;
apare o listă de motoare acceptate, împreună cu o scurtă descriere și caracteristicile acceptate pentru fiecare motor. Motorul implicit al bazei de date este marcat implicit în coloana suport.
schimbarea motorului de bază de date implicit
puteți schimba motorul de bază de date implicit pentru instalarea MySQL. După ce faceți acest lucru, toate tabelele noi pe care le creați vor utiliza noul motor de bază de date (cu excepția cazului în care setați în mod explicit motorul în timpul creării tabelului).
pentru a schimba motorul de bază de date implicit, urmați acești pași:
- utilizați editorul de text preferat pentru a deschide my.fișier cnf pe serverul dvs. Locația mea.fișierul cnf depinde de distribuția Linux:
- pe CentOS și Fedora, my.fișierul cnf este localizat în directorul / etc.
- pe Debian și Ubuntu, my.fișierul cnf este localizat în directorul/etc / mysql.
- în my.fișier cnf, localizați secțiunea.
-
adăugați sau modificați următoarea linie în secțiune. Înlocuiți motorul cu numele motorului pe care doriți să îl utilizați ca implicit:
default-storage-engine=ENGINE
Dacă activați motorul bazei de date InnoDB, în funcție de distribuția Linux, poate fi necesar să dezactivați următoarea linie din my.fișier cnf:
skip-innodb
pentru a face acest lucru, trebuie doar să adăugați un semn de lire sterline (#) la începutul liniei, după cum urmează:
#skip-innodb
- Salvați modificările la my.fișier cnf, apoi ieșiți din editorul de text.
-
reporniți serverul MySQL folosind comanda corespunzătoare pentru distribuția Linux:
- pentru CentOS și Fedora, tastați:
service mysqld restart
-
Pentru Debian și Ubuntu, tastați:
service mysql restart
- pentru CentOS și Fedora, tastați:
- pentru a confirma noul motor de bază de date implicit, utilizați instrucțiunea SQL show engines așa cum este descris în secțiunea determinarea motorului de bază de date implicit.
determinarea motorului de baze de date curent al unui tabel
pentru a determina ce motor utilizează în prezent un tabel de baze de date, tastați următoarea comandă la promptul mysql>. Înlocuiți baza de date cu numele bazei de date pe care doriți să o verificați:
SELECT TABLE_NAME, ENGINE FROM information_schema.TABLES where TABLE_SCHEMA = 'database';
această comandă afișează o listă a fiecărui tabel din Baza de date, împreună cu motorul pe care îl utilizează fiecare tabel.
schimbarea motorului bazei de date a unui tabel
puteți schimba motorul bazei de date pentru un tabel care există deja. De exemplu, următoarea Instrucțiune SQL arată cum să modificați un tabel numit myTable pentru a utiliza motorul InnoDB:
ALTER TABLE myTable ENGINE = InnoDB;
crearea unui nou tabel cu un anumit motor de baze de date
când creați un tabel într-o bază de date, puteți seta în mod explicit motorul bazei de date (altfel, MySQL utilizează motorul bazei de date implicit în timpul creării tabelului). De exemplu, următoarea Instrucțiune SQL arată cum să creați un tabel numit myTable care utilizează motorul bazei de date MyISAM:
CREATE TABLE myTable ( id INT NOT NULL AUTO_INCREMENT, PRIMARY KEY (id), data VARCHAR(20) NOT NULL ) ENGINE MyISAM;
Simiarly, pentru a crea un tabel care utilizează motorul bazei de date InnoDB, puteți utiliza următoarea Instrucțiune SQL:
CREATE TABLE myTable ( id INT NOT NULL AUTO_INCREMENT, PRIMARY KEY (id), data VARCHAR(20) NOT NULL ) ENGINE InnoDB;