重要なお知らせ

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

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

webで検索していたところ、テーブルにはデフォルトでサイズ制限(4G)があり(OSによる制限もあるみたいですが)、データが増えてきたときにそれを大きくしないとデータが書き込み出来ないという投稿を発見しました。

現在、バージョン5.0を利用しているのですが、テーブルサイズを確認したところ(Max_data_length)、4G以上の数字が表示されています。
バージョン5.0では4Gという制限はなくなったのでしょうか?デフォルトから変更していないので、よく分からないのですが。。。

A 回答 (5件)

> Max_data_lengthには281474976710655となっているということはデフォルトでテーブルのサイズが4G以上になっているということなのでしょうか?



どうみてもこの数値は4GBは超えていますのでそうです。
ちなみに、
281474976710655 Byte = 274877906943.9990234375 kB = 268435455.99999904632568359375 MB = 262143.99999999906867742538452148 GB = 255.99999999999909050529822707168 TB
なので、256TBということになりますね。
注:1024Byte = 1kB 1024kB = 1MB

> あと、制限があるとしたら、~

・ファイルシステムの制限
・HDDそのものの空き容量
ですね。
いくら256TBまで可能といわれてもHDDそのものにそれだけの空きがなければ無意味ですので。
(現状、256TBなんて超大規模なRAIDでも組まない限り実現不可能ですので)
とはいえ、こんな超巨大テーブルを作ることはまずないでしょうから(4GBですら個人でのデータベース利用ではまず消費しないかと)あまり神経質になることはないはずです。
    • good
    • 0
この回答へのお礼

ありがとうございました。

とても丁寧に親切に教えていただき、本当に感謝しております。
実際、現在使っていいるHDDはRAIDも組んでいないので300Gほどしかありません。というか、300Gも使う予定はないのですが・・・。

現在、linuxのカーネル2.6を使っているのですが、ファイルシステムの制限も全く問題ないようですのですし・・・。

本当に何度も丁寧に教えていただきありがとうございました。

お礼日時:2007/02/09 10:19

> 現在、linuxのカーネル2.6を使っているのですが、ファイルシステムの制限も全く問題ないようですのですし・・・。



一応、Linuxで使われているファイルシステムでも上限はありますね。


ext2やext3は1ファイル4TBまで
(カーネルによっても違うようですが)
    • good
    • 0
この回答へのお礼

ありがとうございます。

以前はカーネル2.4を使っていたので不安だったのですが、現在4TBまで使えれば私の場合十分です。

ほんとうにありがとうございました。

お礼日時:2007/02/10 17:43

> やはり、上限は4Gですが・・・。



あくまで「デフォルト」ですので。

> ですが、確認したところMax_data_lengthには281474976710655となっています。これは4Gより大きいですよね?

MySQL5.0以降は(デフォルトが)こうなるようですね。
MySQL4.0.x~4.1.xなら4294967295(4GB)となっているはずです。
まあ増えた分には気にする必要はないでしょうね。
とはいえファイルシステム上の制限には逆らえませんので(しつこいので以下略
    • good
    • 0
この回答へのお礼

ありがとうございます。

何度も申し訳ありません。
Max_data_lengthには281474976710655となっているということはデフォルトでテーブルのサイズが4G以上になっているということなのでしょうか?
私はMax_data_lengthがテーブルサイズだと思っていたのでテーブルサイズは特に問題ないかと思います(281474976710655が何Gなのか何Tなのか分かりませんが・・・)。あと、制限があるとしたら、前回教えていただいたファイルシステムの制限(例えばWindowsのFAT32だと1ファイル2GBまでの制限あり)に注意すればいいということでいいのでしょうか?

何度も申し訳ありませんが、私のMax_data_lengthの意味の理解が曖昧なもので・・・。よろしくお願いします。

お礼日時:2007/02/08 11:32

MyISAMテーブルの場合でかつテーブル作成時に設定しなかった場合に上限が4GBとなります。


MAX_ROWS(最大レコード数)×AVG_ROW_LENGTH(レコード長の平均値)がMax_data_lengthとなります。
よって、変更する場合(例えば20GBにしたい場合)は、
ALTER TABLE `table` MAX_ROWS=500000, AVG_ROW_LENGTH=40000;
というようにします。
もちろんテーブル作成時に指定することも可能です。
CREATE TABLE `table` (~) MAX_ROWS=500000,AVG_ROW_LENGTH=40000;

とはいえ、ファイルシステムでの上限(例えばWindowsのFAT32だと1ファイル2GBまでの制限あり)がある場合はそれ以上に設定しても無意味ですのでご注意を。
    • good
    • 0
この回答へのお礼

丁寧に教えていただきありがとうございます。

やはり、上限は4Gですが・・・。
ですが、確認したところMax_data_lengthには281474976710655となっています。これは4Gより大きいですよね?
これはどういう意味なのでしょうか?

お礼日時:2007/02/08 03:11

テーブルのタイプは?


MyISAMは1つのテーブルを1つのファイルで4G
InnoDBは無限(?)

この回答への補足

ありがとうございます。

テーブルタイプはMyISMです。なので、4Gだと思うのですが、4G以上の数字が表示されています・・・。
設定変更した覚えはないのですが・・・。

補足日時:2007/02/08 03:04
    • good
    • 0

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

関連するカテゴリからQ&Aを探す