重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

MySQLのMEMORYエンジンを使用したテーブルについて質問です。

varcharは可変長の認識だったのですが、MEMORYエンジンの場合、固定長として扱うのか・・・

InnoDBの時は2GB程のレコードだったのがMEMORYに変更したところmax_heap_table_size=7GBを超えてしまいました。

質問の内容は以下です
(1).varcharはMEMORYテーブルでは値の長さに関わらず領域を確保するのでしょうか
(2).MEMORYテーブルで可変長を扱う方法はあるのでしょうか

MySQLのバージョンは5.5.28です。

難解な文章で申し訳ないですが、ご存知の方いらっしゃいましたらご教授のほどよろしくお願いいたします。

A 回答 (2件)

とりあえずマニュアルに固定長の制限があると書いていますね


memoryエンジンを使う限り仕様なのでメモリを増やすか
あきらめるしかなさそうです。

http://dev.mysql.com/doc/refman/5.1/ja/memory-st …
    • good
    • 0

2Gが7Gというのはちょっと微妙ですが、インデックスも含めれば


2~3倍になってもおかしくないとは思います
メモリより安価で取り扱いやすいSSDなどに代替した方がよろしいのでは?

この回答への補足

補足です。
Indexは16MB程しかありませんでした。

補足日時:2013/02/04 16:54
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!