Přehled
Datový formát InnoDB je modul pro ukládání dat, který poskytuje větší spolehlivost dat a vylepšení výkonu oproti staršímu formátu MyISAM. Od MySQL 5.5 je nyní InnoDB také výchozím modulem pro ukládání dat.
Ve výchozím nastavení InnoDB ukládá všechna tabulková data do systémového tabulkového prostoru (/var/lib/mysql/ibdata1 ), výsledkem je jeden velký, monolitický soubor. Oddělení tohoto přístupu do přístupu „po tabulce“ sníží pravděpodobnost poškození a také zvýší flexibilitu pro přenos tabulek a spouštění záloh na základě souborů.
Pokyny
Upozornění! Před provedením jakýchkoli změn se ujistěte, že byla vaše databáze zálohována. Zvláště když provádíte změny na nízké úrovni, je to důležité.
- Zálohujte svou databázi. To je natolik důležité, že jsem to zopakoval!
- Upravit /etc/my.cnf a vložte následující do [mysqld] sekce:
innodb_file_per_table=1
- Restartujte MySQL:
/etc/init.d/mysqld restart
- Přihlaste se do MySQL a zadejte následující:
SELECT CONCAT('ALTER TABLE ', TABLE_SCHEMA, '.', table_name, ' ENGINE=InnoDB;') FROM INFORMATION_SCHEMA.tables WHERE table_type='BASE TABLE' AND engine = 'InnoDB';
-
Tím se vygeneruje seznam příkazů ALTER TABLE, které pak budete muset spustit, abyste mohli převést na úložiště podle tabulky.
Poznámka: Tím se ve skutečnosti neuvolní žádné místo na disku, které již bylo přiděleno /var/lib/mysql/ibdata1 -
Sledujte výsledek všech příkazů ALTER, abyste se ujistili, že byly provedeny správně.
Reference dokumentace MySQL: http://dev.mysql.com/doc/refman/5.5/en/innodb-multiple-tablespaces.html