teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

公式リファレンスへのリンクを追加

2017/07/06 04:41

投稿

miyahan
miyahan

スコア3095

answer CHANGED
@@ -4,6 +4,8 @@
4
4
 
5
5
  デフォルトで InnoDB は1レコードあたり8KB(8192Byte)以下である必要があります。DYNAMIC/COMPRESSED 方式においてTEXT等の可変長カラムは20Byteのポインタ情報のみを格納するので、計算上は400カラムほど作成できるはずなのですが、実際に試したところ197カラムまでしか作ることができませんでした。メカニズムは分からないのですが、**1カラムあたり41Byteほど確保**するようです。(40Byte以下のデータはインライン(ノード内)に記録されるので、それの予約??)
6
6
 
7
+ [MySQL :: MySQL 5.6 リファレンスマニュアル :: 14.9.3 DYNAMIC および COMPRESSED 行フォーマット](https://dev.mysql.com/doc/refman/5.6/ja/innodb-row-format-dynamic.html)
8
+
7
9
  新しいサーバーでのみエラーになったのは、MySQL 5.7 で InnoDB のエラーチェックが厳密になったためだと思います。(innodb_strict_mode が ON)
8
10
 
9
11
  ---