[前][次][番号順一覧][スレッド一覧]

mysql:15656

From: 山田 希 <山田 希 <Yamada_Nozomu@xxxxxxxxxx>>
Date: Mon, 16 Jan 2012 14:29:30 +0900
Subject: [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行で書いています。


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




[前][次][番号順一覧][スレッド一覧]

->   15656 2012-01-16 14:29 [山田 希 <Yamada_Noz] BarracudaフォーマットのTEXT型項目数制限について
     15657 2012-01-16 18:05 ┗[HIRATSUKA Sadao <hir]                                       
     15658 2012-01-16 21:21  ┗[山田 希 <Yamada_Noz]