この記事は、2015年「MySQLマニュアルを読む」アドベントカレンダーの5日目です.
MySQLマニュアルを読むシリーズを書き始めて5日目。
今日は付録Cの「Limits in MySQL」(MySQLの制限事項)を眺めてみます。ちなみに、少し前まではこれは「付録C]ではなく、「付録D」でした。もともと「C」として記述されていた Release Note が、マニュアル本体から外されて、別途管理となったことによるもののようです。
(バージョン 5.6 の日本語マニュアルが作成されたタイミングでは、まだ、Release Note は本体マニュアルの中にありました。なので、5.6日本語マニュアルを見ると、「D.10 MySQL での制限」となります。
この章では、以下の制限について記述されています。普段MySQLを使っていても、つい忘れがちなので、この機会に確認しておきましょう。
C.10.1 JOIN
C.10.2 DB数、テーブル数
C.10.3 テーブルサイズ
C.10.4 カラム数とレコードサイズ
C.10.5 .frm ファイルの構造によるもの
C.10.6 Windows での制限
以下、主なものの抜き書き(詳細はマニュアルを確認ください)
JOIN数: 61
DB数: 無制限(OSの制限による)
テーブル数(InnoDB): 約40億個
テーブルサイズ: OSによる
Win32(FAT/FAT32): 2GB/4GB
Win32(NTFS):2TB
Linux2.2:2GB
Linux2.4(ext3):4TB
Solaris9/10: 16TB
OS/X(HFS+):2TB
カラム数: 4096個以下/テーブル (細かい計算式での説明あり)
ENUM数: 255以下
ENUM要素数:理論上 65535だが実際(別の制限により)3000未満。
#そういえばテーブル名の長さに関する制限事項が見当たらないな。。Oralceでの30文字制限みたいなものはなかった(OS依存)だと思っていたけど、裏が取れない。。