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]