mysql:10519
From: George Akimoto <George Akimoto <george@xxxxxxxxxx>>
Date: Sat, 27 Nov 2004 01:34:59 +0900
Subject: [mysql 10519] Re: MySQL-4.1.xのInnoDBで、大きなレコードがINSERTできない
秋元と申します。 >InnoDB-4.xでは、rowの長さが8000byteを超える >テーブルを作成することが出来ない仕様のようです。 >(5.xでは出来るのですか?ちょっと分からないです、すみません。) これですが、マニュアルをみると http://dev.mysql.com/doc/mysql/en/InnoDB_restrictions.html の3行目あたりに書かれていて、簡単に訳すと --- 行の最大長は、BLOBとTEXTコラムを除いて、データベースページの半分より少し 短い。すなわち、行の最大長はおよそ8000バイトである。 LONGBLOB及びLONGTEXTカラムは4GBより短くなければならず、BLOB及びTEXTカラ ムを含んだ行の長さの合計は4GBより短くなければならない。 --- ということのようです。 制限事項としてマニュアルに明記しているくらいなんで、すぐには修正されない ような気がします。 要は8000bytesを超えるならBLOBかTEXTを使えということではないでしょうか。 ちょっと気になることとしては、 http://dev.mysql.com/doc/mysql/ja/InnoDB_restrictions.html に日本語マニュアルを見ると、 --- InnoDB の 3.23.40 以下のバージョンでは、レコードの最大長がデータベース ページの半分よりもやや小さい。ソースリリース 3.23.41 より、BLOB および TEXT カラムを 4 GB 未満にすることが可能となった。レコードの合計の長さも 4 GB 未満でなければならない。 --- とあります。 訳が古いのだと思いますが、バージョンの言及があり、読むと3.23.41以降でこ の8000bytesの制約がなくなっていたバージョンがあったかのように取れます。 どうなんでしょう。
@ 10516 2004-11-26 20:09 [原田誠 <makoto@xxxxx] MySQL-4.1.xのInnoDBで、大きなレコードがINSERTできない 10517 2004-11-26 20:33 ┗["佐野 大輔" <d-sano@] 10518 2004-11-26 21:33 ┣[原田誠 <makoto@xxxxx] -> 10519 2004-11-27 01:34 ┗[George Akimoto <geor] 10526 2004-11-27 19:21 ┗[原田誠 <makoto@xxxxx]