GNU/Linux >> Znalost Linux >  >> Linux

MySQL – Převod na data podle tabulky pro InnoDB

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é.

  1. Zálohujte svou databázi. To je natolik důležité, že jsem to zopakoval!
  2. Upravit /etc/my.cnf a vložte následující do [mysqld] sekce:
    innodb_file_per_table=1
  3. Restartujte MySQL:
    /etc/init.d/mysqld restart
  4. 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';
  5. 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

  6. 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


Linux
  1. Oprava databází MySQL InnoDB

  2. Pseudo soubory pro dočasná data?

  3. Zrušte tabulky v MySQL

  1. RAID pro ty, kteří se mu vyhýbají

  2. Existuje nástroj příkazového řádku pro vizualizaci a analýzu dat?

  3. zlepšit rychlost importu mysql

  1. Prostředí podobné shellu pro binární zpracování?

  2. Extrahování dat z HTML tabulky

  3. Odevzdejte data v kontejneru mysql