なぜなら、たくさんのデータを持つinnodbコンパクトテーブルにカラムを追加するのが遅くなる理由を説明できる人はいますか?mysqlのinnodb compact stoageを使ったmysqlのテーブルが小さくないカラムを追加するのが遅い
0
A
答えて
2
ALTER TABLE
を使用してテーブルに列を追加すると、テーブル全体が再構築される必要があります。これは大きなテーブルでは遅くなります。
あなたはALTER
の実行中にテーブルを継続して使用する場合は、あなたはPT-オンライン・スキーマ変更ツールを使用して検討する必要があります。
http://www.percona.com/doc/percona-toolkit/2.1/pt-online-schema-change.html
0
コンパクトなテーブルのMySQLのドキュメントから、それは述べて各レコードのヘッダーには、フィールドがヌルかどうかを示すビットが含まれています。列を追加する場合は、そのヘッダーのサイズを変更する必要があります。少なくともその表のすべての行のサイズを変更します。
抜粋:COMPACT行形式を使用するInnoDBテーブル内 行は、以下の特性を有する:
を各インデックスレコードは可変長ヘッダが先行してもよい5バイトのヘッダを含んでいます。ヘッダーは、連続したレコードをリンクするため、および行レベルのロックでも使用されます。
レコードヘッダーの可変長部分には、NULL列を示すビットベクトルが含まれています。 NULLにできるインデックスの列数がNの場合、ビットベクトルはCEILING(N/8)バイトを占有します。たとえば、NULLになることができる9〜15の列がある場合、ビットベクトルは2バイトを使用します。
関連する問題
- 1. MySQLテーブルがいっぱい(InnoDB) - エラー#1114
- 2. MySQLは、カラムを追加し、私が使用して既存のMySQLのテーブルにカラムを追加した名前
- 3. MySQL innoDB(無名)の更新が遅い
- 4. MySQLテーブルにテーブルを追加する追加のカラムを追加しました
- 5. IDが小さいmysqlテーブル
- 6. MySQL(Percona 5.7)InnoDBエンジンを搭載した遅いALTERテーブル...?
- 7. デフォルトで1のMySQL Alterテーブル追加カラム
- 8. Perlがmysqlを使っている、ひどく遅い、加速する方法
- 9. MySQL/InnoDBでトランザクションがロールバックされない
- 10. MySQL InnoDB - テーブルを追加する方法は?
- 11. クエリが遅い2つのテーブルフィールドでSELECT ... GROUP BY(MySQL/InnoDB)
- 12. 遅いMySQLテーブル
- 13. Symfony3とXMLを使ってカラムにMySQLインデックスを追加する
- 14. Mysql 5.5 InnoDB INSER/UPDATE非常に遅い
- 15. なぜmysqlテーブルにデータをロードするのが遅い
- 16. MySQLテーブルの種類、innodb?
- 17. MySqlがlast_insert_id()でカラム名を追加しています
- 18. mysqlクエリ出力にカラムの合計を追加したい
- 19. Mysql innodb locking:Xが保持されているときにIXを許可しないでください。
- 20. InnoDB圧縮後のMySQLのインデックスが間違っています
- 21. 使用中のMysql InnoDBテーブルのステータスを開くことができません
- 22. MySQLテーブル(MyISAMとInnoDB)を復旧するのに必要なファイルの最小セット
- 23. カラムが自動インクリメントされないmysql
- 24. デフォルト値を持つMySQLデータベースのテーブルにカラムを追加
- 25. mysqlサーバ5.6を使用してテーブルのIDカラムを追加する方法は?
- 26. MySqlのテーブルを結合し、他の2つのカラムが同じ場合にカラムを追加する
- 27. MyISAM - > InnoDBの後にmysqlクエリーが遅くなりAWSに移動
- 28. MySQLテーブルクエリにカラムを追加する
- 29. MySQLインデックスのクエリが遅くなる
- 30. レールアプリケーションにmysqlを使用して既存のテーブルに新しいテーブル/カラムを追加するには?
テーブルのすべての行にデフォルト値を追加する必要があります。 –