2009年6月 8日

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

坂井田さん、

いつもごひいきに(?)ありがとうございます ;)

今後とも、MySQL(とブログw)をよろしくお願いします。
--
Mikiya Okuno, MySQL Support Engineer
Sun Microsystems KK, Tokyo, Japan

http://www-jp.mysql.com/

On 08/06/2009, at 7:07 PM, 坂井田保彦 wrote:

> 奥野さん
>
> またまた情報ありがとうございます。
> まさかこのブログの著者だったとは。。。。
> ↓のConnector/Jのエントリとかとても助かりました。
> http://nippondanji.blogspot.com/2009/02/mysql-cluster.html
>
> ブログ、読者になっておきました。
>
> 2009/06/08 17:24 Mikiya Okuno <Mikiya.Okuno@xxxxx>:
> 坂井田さん、
>
> どういたしまして。
>
> ところで、ディスクテーブル(通称DD)を利用されているようですが、
> DDを利用する際にはいくつか注意すべき点があります。
> 手前味噌ですが、以下のページにまとめてありますのでご覧下さい。
> http://nippondanji.blogspot.com/2008/11/mysql-cluster.html
>
> また、MySQL Cluster 7.0で追加されたオプションを利用すると
> もっと幸せになれるかも知れません。
> http://nippondanji.blogspot.com/2009/03/mysql-cluster-704-beta-has-been.html
>
> 特にテーブルスペースを作成するためのオプションが便利だと思います。
> (もう既に作成してしまっていると思いますが。)
>
> --
> Mikiya Okuno, MySQL Support Engineer
> Sun Microsystems KK, Tokyo, Japan
> http://www-jp.mysql.com/
>
> On 08/06/2009, at 4:46 PM, 坂井田保彦 wrote:
>
> > 奥野さん
> >
> > ご回答ありがとうございます。TEXTの利用を検討します。
> >
> > オンラインマニュアル、14.13. MySQL Cluster の既知の制限にも
> > ”1 行の許可された最大サイズは 8KB です。”という記述がありましたね。
> > http://dev.mysql.com/doc/refman/5.1/ja/mysql-cluster-limitations.html
> >
> >
> > 2009/06/08 15:48 Mikiya Okuno <Mikiya.Okuno@xxxxx>:
> > 奥野です。
> >
> > エラーメッセージにも表示されている通り、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日 19:58
役に立ちました?:
過去のフィードバック 平均:(0) 総合:(0) 投票回数:(0)
本記事へのTrackback: http://hoop.euqset.org/blog/mt-tb2006.cgi/85694
トラックバック
コメント
コメントする




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