ユーザ用ツール

サイト用ツール


01_linux:11_データベース:01_mysql:03_innodbテーブル分割

差分

この文書の現在のバージョンと選択したバージョンの差分を表示します。

この比較画面にリンクする

両方とも前のリビジョン 前のリビジョン
01_linux:11_データベース:01_mysql:03_innodbテーブル分割 [2013/02/27 09:29]
matsui
01_linux:11_データベース:01_mysql:03_innodbテーブル分割 [2013/11/01 15:15] (現在)
matsui [my.cnf修正]
ライン 1: ライン 1:
 +====== 03 InnoDBテーブル分割 ======
  
 +InnoDB のデータファイルは,MyISAM テーブルと異なって,デフォルトでは ibdata1 というファイルにデータが蓄積されていくとこになります。\\
 +この ibdata1 は,大量のデータを追加していくと,自動的にサイズを拡張していきます。\\
 +ただし,データが削除されても自動的には縮小されません。
 +
 +MySQLのクエリ処理した際とかにどんどんたまっていくようです。\\
 +INSERTやUPDATE、DELETE等ですね!
 +
 +[[http://​opendatabaselife.blogspot.jp/​2009/​10/​myisaminnodb.html|MyISAMとInnoDBの違い]]
 +
 +====== テーブル分割 ======
 +
 +
 +===== ダンプ =====
 +<code console>
 +# mysqldump -u root -p --no-autocommit --all-databases > all_backup.sql
 +</​code>​
 +
 +===== MySQL 停止 =====
 +
 +<code console>
 +# /​etc/​init.d/​mysql stop
 +</​code>​
 +
 +===== my.cnf修正 =====
 +<code console>
 +# vi /etc/my.cnf
 +[mysqld]
 +default-storage-engine=InnoDB
 +innodb_file_per_table
 +skip-innodb-doublewrite ​ # リストアが早くなる
 +</​code>​
 +
 +==== skip-innodb-doublewrite について ====
 +InnoDBは、耐障害性を高めるためにInnoDBデータファイル内で2箇所への書き込みを行なうという実装になっています。\\
 +すなわち「SHOW VARIABLES LIKE '​innodb_doublewrite'​」で、innodb_doublewriteがONになっています。\\
 +ただ、実際にはInnoDBログファイルやバイナリログから復旧可能なため、必ずしも設定が必要なわけではありません。\\
 +そこで二重書き込みをやめるために、初期設定ふぁいるに「skip-innodb-doublewrite」を加えることで、innodb_doublewriteの値をOFFにできます。\\
 +これで、データファイルへの書き込み量を削減できます。これはMySQL5.0以降の機能です。
 +
 +===== 現在のデータファイル削除 =====
 +<code console>
 +# rm -rf /​var/​lib/​mysql/​ib*
 +</​code>​
 +
 +===== MySQL起動 =====
 +<code console>
 +# /​etc/​init.d/​mysql start
 +</​code>​
 +
 +===== リストア =====
 +<code console>
 +# mysql < all_backup.sql
 +</​code>​
 +
 +これで、tablename.idb ができるようになります。
01_linux/11_データベース/01_mysql/03_innodbテーブル分割.txt · 最終更新: 2013/11/01 15:15 by matsui

Yesterday:1646 Today:1269 Total:11770