Práce s databázovými motory MySQL

Tento článek je úvodem do práce s databázovými motory v MySQL.

Chcete-li dodržovat některé postupy v tomto článku, musíte mít root přístup k serveru.

o databázových strojích MySQL

databázové motory poskytují základní funkce pro MySQL pro práci a zpracování dat.

dva nejběžnější a nejoblíbenější databázové motory MySQL jsou MyISAM a InnoDB. MyISAM je výchozí motor 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 lepší volbou může být jiný databázový stroj, například InnoDB. Například InnoDB podporuje transakce, zatímco MyISAM ne. InnoDB také poskytuje podporu pro cizí klíče, zatímco MyISAM ne.

Pokud máte root přístup k 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í programu mysql. Pokud nevíte, jak to udělat, přečtěte si nejprve tento článek.

Určení výchozí databázový stroj

Chcete-li určit výchozí databázový stroj pro vaše instalace, zadejte následující příkaz na mysql> rychlé:

SHOW ENGINES;

seznam podporovaných motorů se objeví, spolu se stručným popisem a podporované funkce pro každý motor. Výchozí databázový stroj je ve sloupci podpora označen jako výchozí.

Změna výchozího databázového stroje

výchozí databázový stroj pro instalaci MySQL můžete změnit. Poté, co to uděláte, budou všechny nové tabulky, které vytvoříte, používat nový databázový stroj (pokud explicitně nenastavíte motor během vytváření tabulky).

Chcete-li změnit výchozí databázový stroj, postupujte takto:

  1. použijte preferovaný textový editor k otevření my.soubor cnf na vašem serveru. Umístění my.soubor cnf závisí na vaší distribuci Linuxu:
    • na CentOS a Fedora, my.soubor cnf je umístěn v adresáři / etc.
    • na Debianu a Ubuntu, my.soubor cnf je umístěn v adresáři/etc / mysql.
  2. v my.soubor cnf, vyhledejte sekci.
  3. přidejte nebo upravte následující řádek v sekci. Vyměňte MOTOR s názvem engine, který chcete použít jako výchozí:

    default-storage-engine=ENGINE

    Pokud jste umožňující InnoDB databáze motoru, v závislosti na vaší distribuce Linuxu, budete muset zakázat následující řádek v mé.cnf soubor:

    skip-innodb

    K tomu, stačí přidat křížek (#) na začátku řádku, takto:

    #skip-innodb

  4. uložte změny do my.soubor cnf a potom ukončete textový editor.
  5. Restartovat MySQL server pomocí odpovídajícího příkazu pro vaší distribuci Linuxu:

    • Pro CentOS a Fedora, typ:
      service mysqld restart
    • Pro Debian a Ubuntu, typ:

      service mysql restart
  6. potvrdit nové výchozí databázový stroj, použijte SHOW MOTORY SQL příkazu, jak je popsáno v Určení výchozí databázový stroj oddíl.

určení aktuálního databázového stroje tabulky

Chcete-li zjistit, který motor databázová tabulka aktuálně používá, zadejte následující příkaz na výzvu mysql>. Vyměňte databáze název databáze, kterou chcete zkontrolovat:

SELECT TABLE_NAME, ENGINE FROM information_schema.TABLES where TABLE_SCHEMA = 'database';

Tento příkaz zobrazí seznam všech tabulku v databázi, spolu s motorem pomocí každé tabulky.

Změna databázového stroje tabulky

databázový stroj můžete změnit pro tabulku, která již existuje. Například následující SQL příkaz ukazuje, jak upravit tabulku nazvanou myTable použít InnoDB engine:

ALTER TABLE myTable ENGINE = InnoDB;

Vytvoření nové tabulky s konkrétní databázový stroj

Když vytvoříte tabulku v databázi, můžete explicitně nastavit své databáze engine (jinak, MySQL používá výchozí databázový stroj při vytváření tabulky). 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;

pro 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;

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.