sql >> データベース >  >> RDS >> Mysql

mysqlのインデックスのサイズを確認する方法(主キーを含む)

    主キーはテーブルです。 InnoDBでは、主キーに実際のデータが含まれているため、主キーにデータが含まれている場合はテーブルになります。

    ちょっと考えてみてください。 InnoDBテーブルのクラスター化インデックスとセカンダリインデックスには、2つの異なるタイプのインデックスがあります。違いは、クラスター化インデックスにはデータが含まれ、セカンダリインデックスにはインデックス付きの列とデータへのポインターが含まれることです。したがって、セカンダリインデックスにはデータが含まれていませんが、CLUSTEREDインデックス内のデータが配置されている場所が含まれています。

    通常、主キーはクラスター化インデックスです。すべての値を含むテーブルと、すべての値を含むクラスター化されたインデックスの両方を格納することは非常に非効率的です。これにより、テーブルのサイズが実質的に2倍になります。

    したがって、InnoDBに主キーがある場合、テーブルサイズは主キーのサイズになります。一部のデータベースシステムでは、プライマリキーとしてセカンダリインデックスを使用し、クラスター化キーとして別のインデックスを使用できますが、InnoDBではこれを許可していません。

    詳細については、次のリンクをお読みください。

    http://dev.mysql.com /doc/refman/5.0/en/innodb-table-and-index.html

    http://dev.mysql.com/doc /refman/5.0/en/innodb-index-types.html

    これらのリンクでは、私が上で述べたすべてのことをより詳細に説明しています。簡単に言えば、テーブルのサイズであるため、主キーインデックスのサイズがすでに設定されています。

    お役に立てば幸いです。




    1. Mysql2 ::Error:文字列値が正しくありません

    2. 間違ったmysqlクライアントライブラリバージョン用にコンパイルされたRubymysql2gem

    3. MYSQL列の作成におけるNULLとデフォルトのNULLとNULLのデフォルトのNULL?

    4. PHP:PDOクエリは結果を返しませんが、同じクエリはphpmyadminで4つの結果を返しますか?