Oliverの日記: 二日目その3:MySQLの限界に挑戦
日記 by
Oliver
昨日と同じMySQL.comの人による話。MySQLの性能限界はかなり低い所にあると思われる事が多いが、実際はもっとずっと大きい仕事もこなせる。また、技術的なバリアだけでなく政治的な話として、どうやって「ネクタイ族」を説得するか。
未実装の機能
- subselect
- stored procedure
- foreign key referential integrity
- triggers
- views
ビュー以外は来年頭のMySQL 4.1までに実装される予定、その後にビューおよびその他の機能の実現にむけて作業。目標はSQL 99完全準拠。現行の機能が遅くなる手法や中途半端な実装は絶対にしないポリシーなので新機能は時間がかかることが多い
スポンサーがいれば特定の機能の優先度があがるが、GPLで公開可能なものしか開発依頼は受けない
MySQLのMyは主開発者Montyの娘の名前で、ムーミンに出て来る「ミー」が由来。
サーバ負荷とデータベースサイズの限界
- 数百GB級の実績あり
- 50億行の実績あり
- スェーデンテレコムだと2000万通話が毎晩1時間以内にINSERTされている
- 数千クエリー/秒の実績あり
- レプリケーションで1マスター、25スレーブという実績もあり(負荷分散、ハイアベイラビリティ)
最大クエリーサイズは標準で1MB、設定次第で3.23では16MB、4.0では最大4GB、DoS対策
- 3.23ではCREATE文の上限64KB (2千フィールド程度)、4.0では事実上無制限
- テーブル毎に最大32個のインデックス、それ以上増えても、インデックス選択のコストが高すぎる
- 6万テーブル以上を同時に使用する実績あり
- 一部ファイルシステムの4GB制限はMERGEテーブルで対応
- UPDATEやINSERTの多い所ではMyISAMじゃなくてInnoDB使用