こんにちは
中嶋です。
最近質問が相次いでますが、その分世の中にRubyistが一人増えたという
ことで、勘弁してください〜。

今回質問したいのは、ちょっとRubyと関係ないMySQLの話題なのですが、
Ruby-listにはデータベース屋さんが結構いそうな感じだし、MySQLのMLでも
反応が悪かったので、こちらに投稿させてもらいます。迷惑であれば注意
してください。

質問:
MySQLのインデックスファイルサイズ(MYI)の最大が (65535-16)*1024 バイト
(約64Mバイト)を超えられず、insert するとHA_ERR_INDEX_FILE_FULL
 (Error code 136) と言っておこられる。この制限をなくしたい。

このせいで、1000万行あるような表を扱えなくなっているのですが、
それでは使い物にならないので、何とかしたいのです。このような問題に
あたってしまったかたは、おられますか?
もしくは、MySQLでは限界があって、ほかのDBMSだといける、とかそういう
ことでしょうか。それとも、OSの限界?(それはたしか、2Gですよね。。)

環境:
MySQL 3.23.21-beta on Linux 2.2.14 and glibc 2.1.3

表:(MyISAM形式)
create table ( c1 char(10) not null primary key , c2 char(17) ) ;


ちなみに、MySQLの本家Mailing List では、「バグちゃうの?普通は
どんどんでかくなってOSの限界まできたら、DBが落ちると思う。」
という反応が返ってました。が、本当かなぁ。

さらにちなみに、mysqldのソースコードを読むと、明らかにサイズ制限
のための計算をしているところがあって、そのコードの意味がわかれば
いいのかもしれません。MySQLのソースを解説しているサイトとか、
ありますか?)


ではよろしくおねがいします。