GNU/Linux >> Linux の 問題 >  >> Linux

MySQL –InnoDBのテーブルごとのデータへの変換

概要

InnoDBデータ形式はデータストレージエンジンであり、古いMyISAM形式よりも優れたデータの信頼性とパフォーマンスの向上を提供します。 MySQL 5.5以降、InnoDBはデフォルトのデータストレージエンジンにもなりました。

デフォルトでは、InnoDBはすべてのテーブルデータをシステムテーブルスペース( / var / lib / mysql / ibdata1 )に保存します )、1つの大きなモノリシックファイルになります。これを「テーブルごと」のアプローチに分離すると、破損の可能性が減り、テーブルの転送とファイルベースのバックアップの実行の柔軟性が向上します。

手順

警告! 変更を加える前に、データベースが最初にバックアップされていることを確認してください。特に低レベルの変更を行う場合、これは重要です。

  1. データベースをバックアップします。これは私がもう一度繰り返したほど重要です!
  2. 編集/etc/my.cnf [mysqld]に以下を挿入します セクション:
    innodb_file_per_table=1
  3. MySQLを再起動します:
    /etc/init.d/mysqld restart
  4. MySQLにログインし、次を発行します。
    SELECT CONCAT('ALTER TABLE ', TABLE_SCHEMA, '.', table_name, ' ENGINE=InnoDB;') FROM INFORMATION_SCHEMA.tables WHERE table_type='BASE TABLE' AND engine = 'InnoDB';
  5. これにより、ALTER TABLEコマンドのリストが呼び出され、テーブルごとのストレージに変換するために実行する必要があります。
    注: これにより、 / var / lib / mysql / ibdata1にすでに割り当てられているディスクスペースが実際に解放されることはありません。

  6. すべてのALTERコマンドの結果を監視して、正しく実行されていることを確認します。

MySQLドキュメントリファレンス:http://dev.mysql.com/doc/refman/5.5/en/innodb-multiple-tablespaces.html


Linux
  1. それを回避する人のためのRAID

  2. 一時データの疑似ファイル?

  3. MySQLでテーブルを削除する

  1. MySQLInnoDBデータベースの修復

  2. mysql インポートの速度を向上させる

  3. MySQL データをファイルに出力できません

  1. バイナリ処理のためのシェルのような環境?

  2. データの視覚化と分析のためのコマンド ライン ツールはありますか?

  3. HTML テーブルからのデータの抽出