2012年1月16日

[mysql 15656] BarracudaフォーマットのTEXT型項目数制限について

初めてメールします。山田と申します。

現在、TEXT型の項目を256個保持しているテーブルをInnoDBで作成しており、
全ての項目に長い文字列を持つInsert文を発行した所、以下のエラーが発生しま
した。
 Got error 139 from storage engine

これはInnoDBの制限という事がわかり、以下のページを参考に、ファイルフォー

マットをBarracuda形式に変更しました。
http://d.hatena.ne.jp/sh2/20090628

ですがCREATE TABLEを実行した所で以下のエラーが発生しました。
CREATE TABLE TEST1 (
ITEM1 TEXT BINARY NULL,
ITEM2 TEXT BINARY NULL,
ITEM3 TEXT BINARY NULL,



ITEM255 TEXT BINARY NULL,
ITEM256 TEXT BINARY NULL
) ENGINE=InnoDB ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=8;

 ERROR 1118 (42000): Row size too large. The maximum row size for the used
table type, not counting BLOBs,
 is 8126. You have to change some columns to TEXT or BLOBs

 ※参考までに項目の数を186個に減らせば、正常に作成出来ます。

■質問内容
1.Barracudaフォーマットには項目数等に制限があるのでしょうか?
  制限がある場合、回避する方法はありますでしょうか?

2.1.の回避が難しい場合最初に出たエラー「Got error 139 from storage
engine」
  を回避する方法はありますでしょうか?

■環境
 OS:CentOS release 5.4 (Final)
 MySQL:5.1.59(UTF-8)
 My.cnf:追加内容
ignore-builtin-innodb
plugin-load=innodb=ha_innodb_plugin.so;
      innodb_trx=ha_innodb_plugin.so;
      innodb_locks=ha_innodb_plugin.so;
      innodb_lock_waits=ha_innodb_plugin.so;
      innodb_cmp=ha_innodb_plugin.so;
      innodb_cmp_reset=ha_innodb_plugin.so;
      innodb_cmpmem=ha_innodb_plugin.so;
      innodb_cmpmem_reset=ha_innodb_plugin.so
innodb_file_per_table
innodb_file_format=Barracuda
※plugin-loadは実際には1行で書いています。


ご教授の程、よろしくお願いいたします。

投稿者 xml-rpc : 2012年1月16日 14:29
役に立ちました?:
過去のフィードバック 平均:(0) 総合:(0) 投票回数:(0)
本記事へのTrackback: http://hoop.euqset.org/blog/mt-tb2006.cgi/108135
トラックバック
コメント
コメントする




画像の中に見える文字を入力してください。