Тази статия е въведение в работата с машини за бази данни в MySQL.
За да следвате някои от процедурите в тази статия, трябва да имате root достъп до сървъра.Относно системите за база данни на MySQL
Машините за бази данни осигуряват основната функционалност за MySQL за работа и обработка на данни.
Двете най-често срещани и популярни системи за база данни на MySQL са MyISAM и InnoDB . MyISAM е машината по подразбиране за MySQL за версии по-стари от 5.5.5 и функционира добре в повечето сценарии. Въпреки това, в зависимост от вашите нужди, има ситуации, в които друга машина за база данни, като InnoDB, може да бъде по-добрият избор. Например, InnoDB поддържа транзакции, докато MyISAM не. InnoDB също предоставя поддръжка за външни ключове, докато MyISAM не.
Ако имате root достъп до вашия сървър, имате пълен контрол върху това как и кога MySQL използва различните машини за бази данни. Можете да промените двигателя на базата данни по подразбиране, да промените механизма на базата данни на конкретна таблица и други.
Тази статия предполага, че вече знаете как да получите достъп до MySQL от командния ред с помощта на mysql програма. Ако не знаете как да направите това, моля, прочетете първо тази статия.Определяне на машината за база данни по подразбиране
За да определите двигателя за база данни по подразбиране за вашата инсталация, въведете следната команда в mysql> подкана:
SHOW ENGINES;
Появява се списък на поддържаните двигатели, заедно с кратко описание и поддържаните функции за всеки двигател. Базата данни по подразбиране е маркирана ПО ПОДРАЗБИРАНЕ в Поддръжка колона.
Промяна на машината за база данни по подразбиране
Можете да промените двигателя за база данни по подразбиране за вашата инсталация на MySQL. След като направите това, всички нови таблици, които създавате, ще използват новата машина на базата данни (освен ако не сте задали изрично машината по време на създаването на таблица).
За да промените двигателя на базата данни по подразбиране, следвайте тези стъпки:
- Използвайте предпочитания от вас текстов редактор, за да отворите my.cnf файл на вашия сървър. Местоположението на my.cnf файл зависи от вашата Linux дистрибуция:
- На CentOS и Fedora, my.cnf файлът се намира в /etc указател.
- В Debian и Ubuntu, my.cnf файлът се намира в /etc/mysql указател.
- В my.cnf файл, намерете [mysqld] раздел.
-
Добавете или променете следния ред в [mysqld] раздел. Сменете ДВИГАТЕЛ с името на двигателя, който искате да използвате по подразбиране:
default-storage-engine=ENGINE
Ако активирате двигателя на базата данни InnoDB, в зависимост от вашата Linux дистрибуция може да се наложи да деактивирате следния ред в my.cnf файл:
skip-innodb
За да направите това, просто добавете знак за лира (# ) до началото на реда, както следва:
#skip-innodb
- Запазете промените в my.cnf файл и след това излезте от текстовия редактор.
-
Рестартирайте MySQL сървъра, като използвате съответната команда за вашата Linux дистрибуция:
- За CentOS и Fedora въведете:
service mysqld restart
-
За Debian и Ubuntu въведете:
service mysql restart
- За CentOS и Fedora въведете:
- За да потвърдите новата машина за база данни по подразбиране, използвайте ПОКАЖИ ДВИГАТЕЛИ SQL израз, както е описано в раздела Определяне на машината за база данни по подразбиране.
Определяне на текущата машина за база данни на таблица
За да определите кой двигател в момента използва таблицата с база данни, въведете следната команда в mysql> бърза. Заменете база данни с името на базата данни, която искате да проверите:
SELECT TABLE_NAME, ENGINE FROM information_schema.TABLES where TABLE_SCHEMA = 'database';
Тази команда показва списък на всяка таблица в базата данни, заедно с двигателя, който всяка таблица използва.
Промяна на машината за база данни на таблица
Можете да промените двигателя на базата данни за таблица, която вече съществува. Например следният SQL оператор показва как да модифицирате таблица с име myTable за да използвате двигателя InnoDB:
ALTER TABLE myTable ENGINE = InnoDB;
Създаване на нова таблица със специфична база данни
Когато създавате таблица в база данни, можете изрично да зададете нейната машина за база данни (в противен случай MySQL използва двигателя за база данни по подразбиране по време на създаването на таблица). Например, следният SQL оператор показва как да създадете таблица с име myTable който използва механизма за база данни MyISAM:
CREATE TABLE myTable ( id INT NOT NULL AUTO_INCREMENT, PRIMARY KEY (id), data VARCHAR(20) NOT NULL ) ENGINE MyISAM;
По същия начин, за да създадете таблица, която използва машината за база данни InnoDB, можете да използвате следния SQL израз:
CREATE TABLE myTable ( id INT NOT NULL AUTO_INCREMENT, PRIMARY KEY (id), data VARCHAR(20) NOT NULL ) ENGINE InnoDB;
Повече информация
- За повече информация относно механизма MyISAM, моля, посетете http://dev.mysql.com/doc/refman/5.5/en/myisam-storage-engine.html.
- За повече информация относно двигателя InnoDB, моля, посетете http://dev.mysql.com/doc/refman/5.5/en/innodb-storage-engine.html.