2009年6月 8日

[mysql 14898] Re: MySQL Cluster varcharのrow sizeの最大値はいくつになるのか

奥野です。

エラーメッセージにも表示されている通り、MySQL Clusterは内部的に8052バイトという行サイズの上限があります。
VARCHAR(2700)はutf8の場合、最大で2700 * 3 = 8100バイトになってしまいますので、行サイズの上限を
超えてしまうことになりますので作成することが出来ません。

TEXTを利用するか、8052バイトの制限を超えないようにテーブルを設計しましょう。
--

Mikiya Okuno, MySQL Support Engineer
Sun Microsystems KK, Tokyo, Japan
http://www-jp.mysql.com/

On 08/06/2009, at 3:31 PM, 坂井田保彦 wrote:

> 坂井田と申します。
>
> MySQL Clusterをディスクベースで使用しています。
> varcharで2700バイトのカラムを作成しようとすると、ERROR 1118が発生します。
> クエリのストレージエンジン部分だけをInnoDBに変えて試したところテーブルを作成することができましたので
> ストレージエンジンの違いによるものだと思うのですが。。。NDBを使用した場合のvarcharのrow sizeの最大値はいくつになるのか
> お分かりになる方はいらっしゃいますか?
>
> ■NDB
> mysql> CREATE TABLE `lengthtest` ( `hoge` varchar(2700) DEFAULT NULL ) TABLESPACE ts_1 STORAGE DISK ENGINE=NDB DEFAULT CHARSET=utf8;
> ERROR 1118 (42000): Row size too large. The maximum row size for the used table type, not counting BLOBs, is 8052. You have to change some columns to TEXT or BLOBs
>
> ■InnoDB
> mysql> CREATE TABLE `lengthtest` ( `hoge` varchar(2700) DEFAULT NULL ) TABLESPACE ts_1 STORAGE DISK ENGINE=InnoDB DEFAULT CHARSET=utf8;
> Query OK, 0 rows affected (0.24 sec)
>
> ■テストした環境
> Red Hat ES 4.6
> MySQL Cluster 7.0.5(RPM版)

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




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