mysql:15908
From: "yoku ts." <"yoku ts." <yoku0825@xxxxxxxxxx>>
Date: Mon, 7 Jan 2013 10:15:16 +0900
Subject: [mysql 15908] Re: 主キーがないMyISAMの上限行数
おはようございます。 ソースコードまでは読んでいませんが、現存する行数だと思います。 ドキュメントのいわく、MyISAMのMYDファイルは row_idのようなものはテーブル構造中に持ち合わせていない様です。 (16進ダンプで覗いてみましたが、やっぱり持っていないようです) http://dev.mysql.com/doc/internals/en/myisam-record-structure.html yoku ts. 2013年1月7日 9:49 久光 一誠 <ds1i-hsmt@xxxxxxxxxx>: > yokuさんありがとうございます。 > > > おしえていだたいだ情報の > > There is a limit of (2^32)^2 (1.844E+19) rows in a MyISAM table. > > というのは文字通り現存する行数の上限なんでしょうか。それとも内部でauto_incrementみたいないカウンタがあってそれが2^64行分を消費すると限界になるという意味なんでしょうか。 > > 2^64というとちょうどBIGINTの幅と同じなので、MyISAMは内部でBIGINTのauto_incrementを持っていてそれが上限なのかなとも思うのです。あるいは内部的にBIGINTのキーみたいなものは持っているけどauto_incrementと違ってalter tableをやれば現存する行数分に整理されて、やっぱり現存する行数が2^64なければそれでいいということなんでしょうか。 > > これだけの行数があればどっちでも問題にはならないことはわかったので個人的な興味ではあるのですが、どなたか知ってる方いらっしゃいますか? > > > > On 2013/01/06, at 15:17, "yoku ts." <yoku0825@xxxxxxxxxx> wrote: > >> こんにちは、yokuといいます。 >> >> ・2^64行の行数制限 >> ・(ファイルシステム側のファイルサイズ制限とは別に)256TBのファイルサイズ制限 >> >> がありそうです。 >> http://dev.mysql.com/doc/refman/5.5/en/myisam-storage-engine.html >> >> >> yoku ts. >> >> >> >> >> 2013年1月6日 11:53 久光 一誠 <ds1i-hsmt@xxxxxxxxxx>: >>> 久光と申します。 >>> >>> INTを主キーにしているMyISAMはINTの数が行数の上限になると思うのですが、主キーを設定していないテーブルの場合はOSの最大ファイル容量まで作成できるのでしょうか。それとも内部的にユニークな何かが設定されていてINSERTやDELETEを繰り返すしてそれが上限に達するとテーブルのファイルサイズが小さくても限界になってしまうのでしょうか。 >>> >>> 自分がやってる仕事では今のところINTを主キーにしていても使い切るのはほぼ不可能な状況なので直面している問題ではないのですが後学のために知っておきたいです。 >>> >>> よろしくお願いします。 >>> >>> > >
15905 2013-01-06 11:53 [久光 一誠 <ds1i-hsmt] 主キーがないMyISAMの上限行数 15906 2013-01-06 15:17 ┗["yoku ts." <yoku0825] 15907 2013-01-07 09:49 ┗[久光 一誠 <ds1i-hsmt] -> 15908 2013-01-07 10:15 ┗["yoku ts." <yoku0825] 15909 2013-01-08 15:35 ┗[坂田W <w189150@xxxxx] 15910 2013-01-08 18:10 ┗["yoku ts." <yoku0825] 15911 2013-01-09 11:19 ┗[久光 一誠 <ds1i-hsmt]