Tento článek je úvodem do práce s databázovými stroji v MySQL.
Abyste mohli postupovat podle některých postupů v tomto článku, musíte mít k serveru přístup root.O databázových strojích MySQL
Databázové stroje poskytují základní funkce pro práci s daty a jejich zpracování pro MySQL.
Dva nejběžnější a nejoblíbenější databázové stroje MySQL jsou MyISAM a InnoDB . MyISAM je výchozí engine pro MySQL pro verze starší než 5.5.5 a funguje dobře ve většině scénářů. V závislosti na vašich potřebách však existují situace, kdy může být lepší volbou jiný databázový stroj, například InnoDB. Například InnoDB podporuje transakce, zatímco MyISAM nikoli. InnoDB také poskytuje podporu pro cizí klíče, zatímco MyISAM ne.
Pokud máte root přístup k vašemu serveru, máte úplnou kontrolu nad tím, jak a kdy MySQL používá různé databázové stroje. Můžete změnit výchozí databázový stroj, změnit databázový stroj konkrétní tabulky a další.
Tento článek předpokládá, že již víte, jak přistupovat k MySQL z příkazového řádku pomocí mysql program. Pokud nevíte, jak na to, přečtěte si nejprve tento článek.Určení výchozího databázového stroje
Chcete-li určit výchozí databázový stroj pro vaši instalaci, zadejte následující příkaz v mysql> výzva:
SHOW ENGINES;
Zobrazí se seznam podporovaných motorů spolu se stručným popisem a podporovanými funkcemi pro každý motor. Výchozí databázový stroj je označen DEFAULT v části Podpora sloupec.
Změna výchozího databázového stroje
Můžete změnit výchozí databázový stroj pro vaši instalaci MySQL. Poté, co to uděláte, všechny nové tabulky, které vytvoříte, budou používat nový databázový stroj (pokud modul během vytváření tabulky výslovně nenastavíte).
Chcete-li změnit výchozí databázový stroj, postupujte takto:
- K otevření souboru my.cnf použijte preferovaný textový editor soubor na vašem serveru. Umístění souboru my.cnf závisí na vaší distribuci Linuxu:
- V systémech CentOS a Fedora je to my.cnf soubor se nachází v /etc adresář.
- V Debianu a Ubuntu je to my.cnf soubor se nachází v /etc/mysql adresář.
- V souboru my.cnf vyhledejte soubor [mysqld] sekce.
-
Přidejte nebo upravte následující řádek v [mysqld] sekce. Vyměňte ENGINE s názvem motoru, který chcete použít jako výchozí:
default-storage-engine=ENGINE
Pokud povolujete databázový stroj InnoDB, v závislosti na vaší distribuci Linuxu možná budete muset zakázat následující řádek v souboru my.cnf soubor:
skip-innodb
Chcete-li to provést, stačí přidat znak libry (# ) na začátek řádku následovně:
#skip-innodb
- Uložte změny do souboru my.cnf soubor a poté ukončete textový editor.
-
Restartujte server MySQL pomocí příslušného příkazu pro vaši distribuci Linuxu:
- Pro CentOS a Fedoru zadejte:
service mysqld restart
-
Pro Debian a Ubuntu zadejte:
service mysql restart
- Pro CentOS a Fedoru zadejte:
- Pro potvrzení nového výchozího databázového stroje použijte ZOBRAZIT ENGINES Příkaz SQL, jak je popsáno v části Určení výchozího databázového stroje.
Určení aktuálního databázového stroje tabulky
Chcete-li zjistit, který stroj databázová tabulka aktuálně používá, zadejte následující příkaz v mysql> výzva. Nahradit databázi s názvem databáze, kterou chcete zkontrolovat:
SELECT TABLE_NAME, ENGINE FROM information_schema.TABLES where TABLE_SCHEMA = 'database';
Tento příkaz zobrazí seznam všech tabulek v databázi spolu s enginem, který každá tabulka používá.
Změna databázového stroje tabulky
Databázový stroj můžete změnit pro tabulku, která již existuje. Například následující příkaz SQL ukazuje, jak upravit tabulku s názvem myTable pro použití enginu InnoDB:
ALTER TABLE myTable ENGINE = InnoDB;
Vytvoření nové tabulky pomocí konkrétního databázového stroje
Když vytváříte tabulku v databázi, můžete explicitně nastavit její databázový stroj (jinak MySQL používá při vytváření tabulky výchozí databázový stroj). Například následující příkaz SQL ukazuje, jak vytvořit tabulku s názvem myTable který používá databázový stroj MyISAM:
CREATE TABLE myTable ( id INT NOT NULL AUTO_INCREMENT, PRIMARY KEY (id), data VARCHAR(20) NOT NULL ) ENGINE MyISAM;
Podobně k vytvoření tabulky, která používá databázový stroj InnoDB, můžete použít následující příkaz SQL:
CREATE TABLE myTable ( id INT NOT NULL AUTO_INCREMENT, PRIMARY KEY (id), data VARCHAR(20) NOT NULL ) ENGINE InnoDB;
Další informace
- Další informace o jádru MyISAM naleznete na adrese http://dev.mysql.com/doc/refman/5.5/en/myisam-storage-engine.html.
- Další informace o enginu InnoDB naleznete na adrese http://dev.mysql.com/doc/refman/5.5/en/innodb-storage-engine.html.