無料PHPプログラム

MySQL 5.1 リファレンスマニュアル :: 13 ストレージエンジンとテーブルタイプ :: 13.4 MyISAM ストレージエンジン :: 13.4.2 キーに必要な領域
« 13.4.1 MyISAM スタートアップオプション

13.4.3 MyISAM テーブルストレージフォーマット »
Section Navigation      [Toggle]
  • 13.4 MyISAM ストレージエンジン
  • 13.4.1 MyISAM スタートアップオプション
  • 13.4.2 キーに必要な領域
  • 13.4.3 MyISAM テーブルストレージフォーマット
  • 13.4.4 MyISAM テーブルの問題点

13.4.2. キーに必要な領域

MyISAM テーブルはBツリーインデックスを使用します。インデックスファイルのサイズは、全てのキーを大体 (key_length+4)/0.67のように計算し、それらを合計して大まかに算出する事ができます。fこれは、全てのキーがソートされた順番に挿入され、かつキーが全く圧縮されない時を想定した最悪のケースです。

文字列インデックスでは空白が圧縮されます。もしインデックスの最初の部分が文字列であれば、プリフィックスもまた圧縮されます。文字列カラムに含まれる後続の空白が長い場合、またはそのカラムが VARCHARカラムであるためにその長さがフルに使用されることがない場合は、空白の圧縮によってインデックスファイルが上記の数値よりも小さくなります。プレフィックス圧縮は文字列で始まるキーに使用されます。同一のプリフィックスを持つ文字列が多数存在する場合は、プリフィックスの圧縮が役立ちます。

MyISAMテーブルでは、テーブル作成時に PACK_KEYS=1 を指定する事で、数値のプリフィックスを圧縮する事もできます。この機能は、数値が上位バイトから順に格納される場合に、同一のプリフィックスを持つ整数キーが多数ある時に役立ちます。

Copyright c 1997, 2010, Oracle and/or its affiliates. All rights reserved. Legal Notices
Top / Previous / Next / Up / Table of Contents
© 2010, Oracle Corporation and/or its affiliates

無料CGI PHPスクリプト | 新着情報スクリプト | 営業日カレンダー | PHPマニュアル | MySQLマニュアル | PEARマニュアル

Copyright (c) 2010 jmcodex.com All rights reserved.