「MySQLのパフォーマンスの最適化ピラミッド法」を参照して一連の記事は、書籍を削除し、繰り返しの説明は、いくつかの説明は、元の本の完全版を参照してくださいあまりにも複雑です。
INFORMATION_SCHEMAも唯一のどのような情報がクエリにできるようにするにはどのようなテーブル、知っておく必要がありSYSシステム・ライブラリ、追加の構成、いくつかのよりも簡単。
まず、INFORMATION_SCHEMAは何ですか
1.はじめに
INFORMATION_SCHEMAはデータベースメタデータ情報、統計情報およびMySQLサーバに関する情報へのアクセスを提供します。これは、MySQLのデータ辞書またはシステムカタログに似ています。
-
各インスタンスはすべてのために、他の例示のMySQLを格納する基本情報データベースをMySQLの別INFORMATION_SCHEMAを有します
-
メモリ内のライブラリのテーブル(非永続テーブル)、そのディスクに関連するデータディレクトリには、対応するファイルが存在しないが、データは再起動後に失われます
-
ライブラリテーブルは読み取り専用で、変更することはできません、また、あなたはこれらのテーブルのトリガを設定することができます。
-
TABLE文は、番組の一部を置き換えることができます(たとえば、SHOWデータベースは、SHOW TABLES、など)クエリINFORMATION_SCHEMAで
2.アクセスINFORMATION_SCHEMA必要
-
すべてのユーザーがINFORMATION_SCHEMAの下のテーブルにアクセスする権限を持っているが、デフォルトでのみデータディクショナリ表のサーバー層の一部にアクセス
-
プロセスの特権を持っているのアクセス、他のデータ・ディクショナリ表およびデータ・ディクショナリ表のInnoDBの層サーバー層、ユーザーのニーズに(ノートの権限を選択しないで、テーブルの下に認可十分な特権が与えられているINFORMATION_SCHEMAを選択します)。
-
必要な権限もSHOWステートメントに適用されます。いずれかのクエリを使用して、オブジェクトは、関連するデータを参照する権限を持っている必要があります。
変化の3小史
- 59の合計の表5.6バージョンの10のMyISAMエンジン一時テーブル(データディクショナリテーブル)、49メモリエンジン一時テーブル(統計およびいくつかの一時的な情報)。
- テーブル61の5.7バージョン、前記一時的なストレージエンジン10のInnoDBテーブル(データディクショナリテーブル)、一時テーブル51メモリエンジン。
- バージョン8.0は、ライブラリにデータディクショナリテーブルと元のメモリエンジンmysqlの一時テーブルの一部を移行すると、これらのテーブルは隠されているとINFORMATION_SCHEMAで異なる時計がアクセスするMySQLデータベースのニーズに直接アクセスすることはできません。統計表中のメモリと、まだINFORMATION_SCHEMAエンジン専用。
二、INFORMATION_SCHEMAの構成オブジェクト
目的やこれらのテーブルの類似性に基づいて、我々は次のような分類を作成したテーブルINFORMATION_SCHEMA下に置きます。
1.サーバー層の統計辞書テーブル
COLUMNS:
-
テーブルの列(フィールド)で提供される情報
-
テーブルには、一時的なInnoDBストレージエンジンであります
KEY_COLUMN_USAGE:
-
どのような存在クエリ制約欄、主キー、ユニークインデックス情報の制約、外部キーが含まれています。テーブル内の情報TABLE_CONSTRAINTSレコードを持つ情報テーブルは、やや似ていますが、テーブルには、レコードTABLE_CONSTRAINTSが参照するデータベーステーブルのカラム情報を制約しません。
-
テーブルは、一時テーブルメモリエンジンです
REFERENTIAL_CONSTRAINTS:
-
外部キー制約に関するいくつかの情報へのアクセスを提供します
-
テーブルは、一時テーブルメモリエンジンです
統計学:
-
インデックスに関するいくつかの統計情報へのアクセスを提供し、インデックスレコードの行に対応します
-
テーブルは、一時テーブルメモリエンジンです
TABLE_CONSTRAINTS:
-
ルックアップテーブルの制約に関する情報の提供
-
テーブルは、一時テーブルメモリエンジンです
FILES:
-
MySQLのクエリのInnoDBやNDBストレージエンジン関連するデータファイル情報が含まれている関連情報データテーブルスペースファイルを提供します
-
テーブルメモリテーブルのストレージエンジン
ENGINES:
-
MySQLサーバへのアクセスを提供し、エンジン関連の情報をサポートしています
-
テーブルは、一時テーブルメモリエンジンです
TABLESPACES:
-
アクティブなテーブルスペースに関連する情報を提供する(主にNDBストレージエンジンのテーブルスペース情報を記録)
-
テーブルはInnoDBストレージエンジンのテーブルスペースについての情報を提供していません。InnoDBのテーブルスペースのメタデータ情報は、INNODB_SYS_TABLESPACESとINNODB_SYS_DATAFILESテーブルを参照してください。スタートから5.7.8は、INFORMATION_SCHEMA.FILESテーブルは、メタデータ情報のInnoDBテーブルスペースを提供します
-
テーブルは、一時テーブルメモリエンジンです。
SCHEMATA:
-
スキーマ内の情報のリストを提供するためのMySQLデータベースのクエリはデータベースです
-
テーブルは、一時テーブルメモリエンジンです
2.サーバレイヤオブジェクトディクショナリ表
VIEWS:
-
関連情報ビューのクエリにデータベースを提供し、テーブルのクエリアカウントは、ビューを表示する権限を持っている必要があります
-
テーブルは一時テーブルInnoDBエンジンであります
TRIGGERS:
-
テーブルを照会するフリップフロップ、フリップフロップの下にデータベース上の関連する情報を提供し、クエリアカウントがトリガーに権限を持っている必要があります
-
テーブルは一時テーブルInnoDBエンジンであります
TABLES:
-
データベース内のテーブルに関連する基本的な情報を提供するクエリ
-
テーブルは、一時テーブルメモリエンジンです
ルーチン:
-
(ユーザ定義関数UDF含まない)記憶処理とストレージ機能に関する情報、テーブル情報てmysql.procにテーブル対応して設けられました
-
テーブルは一時テーブルInnoDBエンジンであります
PARTITIONS:
-
パーティションテーブルに関する情報へのアクセスを提供します
-
テーブルは一時テーブルInnoDBエンジンであります
EVENTS:
-
イベントスケジュールされたタスクに関連する情報へのアクセスを提供します
-
テーブルは一時テーブルInnoDBエンジンであります
パラメーター:
-
ストアド・プロシージャおよび関数は、パラメータ情報、及び記憶の関数の戻り値に関する情報を提供します。概要param_list列パラメータ記録された情報テーブル似てmysql.proc
-
テーブルは一時テーブルInnoDBエンジンであります
3.サーバー層混合メッセージ辞書テーブル
GLOBAL_STATUS、GLOBAL_VARIABLES、SESSION_STATUS、SESSION_VARIABLES:
-
グローバル、セッションレベルの状態変数と変数の情報システムへのアクセスを提供し、一時テーブルのメモリのエンジンとして、これらのテーブル
OPTIMIZER_TRACE:
-
オプティマイザ機能は、生成された追跡情報を提供します。
-
トラッキング機能はデフォルトではオフになって、使用optimizer_traceシステム変数のトレースが有効になっています。有効にした場合、各セッションは、独自の文が実行追跡、とだけSQL文の実績を持続することができます
-
テーブルは一時テーブルInnoDBエンジンであります
PLUGINS:
-
どのようなプラグインは、MySQL Serverのサポートにクエリに関する情報を提供します
-
テーブルは一時テーブルInnoDBエンジンであります
PROCESSLIST:
-
一部の州では、プロセス、スレッドの実行に関する情報へのアクセスを提供します
-
テーブルは一時テーブルInnoDBエンジンであります
プロファイリング:
-
クエリのパフォーマンス分析文に関する情報を提供します。プロファイルの表示と生成のSHOW PROFILE文を記録したコンテンツに対応する情報。=文が記録されます性能解析情報1:00プロファイリングセッション変数にテーブルのニーズは、または記録されません。
-
注:MySQLの5.7.2以降では、このテーブルは、もはやのMySQLの将来のバージョンで削除され、推奨されません。代わりにパフォーマンススキーマへの切り替え
-
テーブルは、一時テーブルメモリエンジンです
CHARACTER_SETS:
-
MySQLサーバへの提供のアクセスは、使用可能な文字セットをサポートしています
-
テーブルは、一時テーブルメモリエンジンです
COLLATIONS:
-
どのような可能な照合をサポートするMySQLサーバへのアクセスを提供します
-
テーブルは、一時テーブルメモリエンジンです
COLLATION_CHARACTER_SET_APPLICABILITY:
-
MySQLサーバでは文字セットがどの照合するのに適しているクエリを提供します。SHOW COLLATIONから得られたクエリ結果セットの結果に対応する最初の2つのフィールドの値を濃縮しました。テーブルには、現在とあまり効果を発見していません、
-
テーブルは、一時テーブルメモリエンジンです
COLUMN_PRIVILEGES:
-
(別々のコンテンツを持つことになり、テーブルの列の後に承認が必要)列に関する権利情報、mysql.column_priv列の特権テーブルから内容のテーブルへのアクセスを提供
-
テーブルは、一時テーブルメモリエンジンです
SCHEMA_PRIVILEGES:
-
1行の情報を記録し、各タイプのためのライブラリ、ライブラリレベルの権限のレベルに関する権利情報へのアクセスを提供し、テーブルmysql.dbからこのテーブルの情報
-
テーブルは、一時テーブルメモリエンジンです
TABLE_PRIVILEGES:
-
テーブルの内容mysql.tables_privから、テーブルレベルの権限に関する情報へのアクセスを提供
-
テーブルは、一時テーブルメモリエンジンです
USER_PRIVILEGES:
-
グローバル権限のクエリ情報、テーブルmysql.userからこの表の情報を提供します
-
テーブルは、一時テーブルメモリエンジンです
層系辞書テーブル4のInnoDB
INNODB_SYS_DATAFILES:
-
クエリの提供のInnoDBテーブル毎のファイルと通常のテーブルスペースのデータファイルのパス情報のInnoDB内部データディクショナリテーブルに、情報と同等のSYS_DATAFILES
-
情報テーブルには、メタデータのすべてのInnoDBテーブルスペースの種類が含まれ、別の表領域、通常のテーブルスペース、システム・テーブル・スペース、一時テーブルスペースとUNDO表領域を含むが、
-
テーブルには、一時的なメモリエンジンテーブルであるプロセスの権限を持っているために、テーブルのユーザーのニーズを照会します。
INNODB_SYS_VIRTUAL:
-
InnoDBのダミー情報系列に関する問い合わせを提供し、内部データ・ディクショナリ情報のInnoDB SYS_VIRTUALテーブルに相当するメタデータ関連する列を、生成します。仮想情報が関連する列列の各列に対して生成されるライン情報INNODB_SYS_VIRTUAL表に示します。
-
テーブルには、一時的なメモリエンジンテーブルであるプロセスの権限を持っているために、テーブルのユーザーのニーズを照会します
INNODB_SYS_INDEXES:
-
お問い合わせの提供のInnoDBインデックスメタデータ情報情報のInnoDB内部データディクショナリテーブルに相当し、SYS_INDEXES
-
テーブルには、一時的なメモリエンジンテーブルであるプロセスの権限を持っているために、テーブルのユーザーのニーズを照会します
INNODB_SYS_TABLES:
-
お問い合わせの提供のInnoDBテーブルのメタデータ、InnoDBのデータディクショナリ内部SYS_TABLESテーブルに相当する情報を。
-
テーブルには、一時的なメモリエンジンテーブルであるプロセスの権限を持っているために、テーブルのユーザーのニーズを照会します
INNODB_SYS_FIELDS:
-
関連へのアクセスを提供するメタデータ情報InnoDBの欄 SYS_FIELDS内部のInnoDBデータディクショナリ情報テーブルに相当し、
-
テーブルには、一時的なメモリエンジンテーブルであるプロセスの権限を持っているために、テーブルのユーザーのニーズを照会します
INNODB_SYS_TABLESPACES:
-
お問い合わせ提供のメタデータ情報のInnoDBテーブルスペースと独立通常のテーブルスペースを情報のInnoDB内部データディクショナリテーブルSYS_TABLESPACESと同等、(また、フルテキストインデックステーブルスペースが含まれています)
-
テーブルには、一時的なメモリエンジンテーブルであるプロセスの権限を持っているために、テーブルのユーザーのニーズを照会します
INNODB_SYS_FOREIGN_COLS:
-
問い合わせの提供InnoDBの外部キー列のステータス情報のInnoDB内部データディクショナリテーブルに、情報と同等のSYS_FOREIGN_COLS
-
テーブルには、一時的なメモリエンジンテーブルであるプロセスの権限を持っているために、テーブルのユーザーのニーズを照会します
INNODB_SYS_COLUMNS:
-
関連へのアクセスを提供するメタデータ情報のInnoDBテーブルの列 SYS_COLUMNS内部のInnoDBデータディクショナリ情報テーブルに相当し、
-
テーブルには、一時的なメモリエンジンテーブルであるプロセスの権限を持っているために、テーブルのユーザーのニーズを照会します
INNODB_SYS_FOREIGN:
-
問い合わせの提供メタデータ情報InnoDBの外部キーのInnoDB内部データディクショナリテーブルに、情報と同等のSYS_FOREIGN
-
テーブルには、一時的なメモリエンジンテーブルであるプロセスの権限を持っているために、テーブルのユーザーのニーズを照会します
INNODB_SYS_TABLESTATS:
-
お問い合わせの提供のInnoDBテーブルビューステータス情報の低いレベルを。オプティマイザは、データを計算し、使用するクエリのInnoDBテーブルどのインデックスを決定するために、これらの統計を使用しています。対応する内部システムテーブル無しのInnoDB。
-
テーブルには、一時的なメモリエンジンテーブルであるプロセスの権限を持っているために、テーブルのユーザーのニーズを照会します
5. InnoDBの層のロック、取引、統計ディクショナリ表
INNODB_LOCKS:
-
InnoDBエンジンを照会する閉塞が発生したときに、トランザクションとロックの情報を
-
テーブルメモリエンジン一時テーブル、テーブルには、プロセスの特権を持っているアクセス権を持っている必要があります
INNODB_TRX:
-
アクセスを提供、現在の(読み取り専用トランザクションは含まない)InnoDBエンジンで実行される各トランザクションに関する情報トランザクションは、ロック、トランザクションの開始時間を待っているSQLを実行するというようにされているかどうかを含めての、。
-
テーブルには、一時的なメモリエンジンテーブルであるプロセスの権限を持っているために、テーブルのユーザーのニーズを照会します
INNODB_BUFFER_PAGE_LRU:
-
アクセスを提供バッファプールページ情報を LRUリスト内のInnoDBバッファプールに関するページ保存、およびバッファプールに入力する方法を決定することは、バッファプールから排除する必要がどのページに十分ではありません
-
テーブルは、一時テーブルメモリエンジンです
INNODB_LOCK_WAITS:
-
上のクエリの提供ロックをそれぞれのInnoDBトランザクションは、レコードを待ってブロックされている要求されたトランザクションが許可されたブロッキング・ロックや障害物を含め、
-
テーブルメモリエンジンテーブルは、ユーザーがリストのプロセスの権限にアクセスする必要があります
INNODB_TEMP_TABLE_INFO:
-
InnoDB内の関連する例へのアクセスを提供InnoDBの一時テーブル現在アクティブなユーザが作成した情報を情報を提供していないことは、InnoDBのクエリオプティマイザが使用する内部の一時テーブルを照会します。
-
INNODB_TEMP_TABLE_INFOテーブルはときに最初のクエリを作成しています。
-
テーブルには、一時的なメモリエンジンテーブルであるプロセスの権限を持っているために、テーブルのユーザーのニーズを照会します
INNODB_BUFFER_PAGE:
-
クエリの提供に関連するページバッファプール内の情報を
-
照会テーブルは、テーブルは一時テーブルのメモリのエンジンで、PROCESS権限を持っているユーザーが必要です
INNODB_METRICS:
-
より詳細なパフォーマンス情報を提供し、それはPERFORMANCE_SCHEMAを補足するものです。あなたは、全体的な健康のInnoDBをチェックして、パフォーマンスのボトルネック、リソース不足やその他の問題やアプリケーションを診断することができます。
-
テーブルには、一時的なメモリエンジンテーブルであるプロセスの権限を持っているために、テーブルのユーザーのニーズを照会します
INNODB_BUFFER_POOL_STATS:
-
提供バッファプールINNODB数のクエリステータス情報を、同一のと同様の情報テーブルSHOW ENGINE INNODB STATUSの出力に記録された情報、さらに、状態変数のInnoDBバッファプールの数も同じ値の部分を提供
-
プロセスの特権を持っているテーブルのニーズを見ると、テーブルは一時テーブルメモリエンジンです
6. InnoDBの層のフルテキストインデックス・ディクショナリ表
INNODB_FT_CONFIG:
-
InnoDBのテーブルのメタデータと関連情報のFULLTEXTインデックスに関するお問い合わせを提供します。このテーブルを照会する前に、我々はDB_NAME / tb_nameテーブル名とライブラリ、innodb_ft_aux_table =「DB_NAME / tb_name」を設定する必要があり、フルテキストインデックスが含まれています。
-
照会テーブルのアカウントにはPROCESS権限が必要で、テーブルは一時テーブルメモリエンジンです
INNODB_FT_BEING_DELETED:
-
テーブルに格納されたデータINNODB_FT_DELETEDテーブルのスナップショットのみOPTIMIZE TABLEステートメントで保守作業中に使用されます。あなたはOPTIMIZE TABLE文を実行すると、最初のINNODB_FT_BEING_DELETEDテーブルにテーブルINNODB_FT_DELETEDデータのスナップショットを保存して、テーブルをクリアし、INNODB_FT_DELETEDテーブルからDOC_IDを削除しますINNODB_FT_BEING_DELETEDデータ。コンテンツINNODB_FT_BEING_DELETEDテーブル通常は短いライフサイクルので、この表のデータは大きくないデバッグまたは監視するのに便利です。
-
デフォルトのテーブルには、レコードのデータは、あなたが作成したストップワードなどを設定され、設定されたシステム構成パラメータinnodb_ft_aux_table =文字列(文字列表現のdb_name.tb_name文字列)、およびフルテキストインデックスには必要ありません。
-
照会テーブルのアカウントにはPROCESS権限が必要で、テーブルは一時テーブルメモリエンジンです
INNODB_FT_DELETED:
-
InnoDBのFULLTEXTインデックステーブルから削除されたアクセス回線の情報を提供します。テキスト検索を実行するとき、それはInnoDBのFULLTEXTインデックスのDML操作中に高価な索引の再編成操作を避けるために存在する、単語の新しい削除の情報フルテキストインデックスは、単独のテーブルに格納された検索結果のうちどのフィルタ、 OPTIMIZE TABLE文を実行するときに、テーブル内の情報は空です。
-
テスト/テスト:このテーブルの情報は、デフォルトでは記録されない、例えば、エンジンのテーブルのレコードInnoDBの必要な情報を指定する(これはデフォルトは空の文字列である)innodb_ft_aux_tableオプションが必要です。
-
照会テーブルのアカウントにはPROCESS権限が必要で、テーブルは一時テーブルメモリエンジンです
INNODB_FT_DEFAULT_STOPWORD:
-
デフォルトのフルテキストインデックスストップリストのテーブルには、ストップワード値のリストへのアクセスを提供します。ストップリストのパラメータは、オープンinnodb_ft_enable_stopword = ONに必要な有効、デフォルトのパラメータがONで、ストップワードの後に機能を有効にする、もしinnodb_ft_user_stopword_tableオプション(指定されたエンジンはInnoDBテーブルのフルテキストインデックスを有効にするには)無効シソーラステーブル名をカスタマイズしました、値が、その後、innodb_ft_user_stopword_tableオプションが指定されていない場合は指定する単語ストップリストinnodb_ft_user_stopword_tableオプションを使用して機能を無効にしますが、innodb_ft_server_stopword_tableオプションは無効シソーラステーブル名の値は、カスタマイズされた(すべてのエンジンのInnoDBテーブルのフルテキストインデックスのために有効にします)ストップリスト機能はinnodb_ft_server_stopword_tableオプションも指定されていない場合、デフォルトのストップリスト、すなわちINNODB_FT_DEFAULT_STOPWORDテーブルを指定するには、同じストップワードinnodb_ft_server_stopword_tableオプションを使用しています。
-
クエリは、テーブルには、テーブルが一時テーブルのメモリのエンジンで、アカウントPROCESS権限を持っている必要があります
INNODB_FT_INDEX_TABLE:
-
InnoDBのテーブルに関するお問い合わせは、単語のテキスト情報を逆引き参照転置インデックスのフルテキストインデックスを提供します。
-
照会テーブルのアカウントにはPROCESS権限が必要で、テーブルは一時テーブルメモリエンジンです
INNODB_FT_INDEX_CACHE:
-
フルテキスト索引付けタグ情報InnoDBストレージエンジンFULLTEXTインデックステーブルが新たに挿入された行が含まれているへのアクセスを提供します。これは、DML操作中に高価な索引の再編成を避けるために、新たに挿入されたフルテキストインデックスの単語の情報は、テーブルに別々に格納されて存在する場合がありOPTIMIZEのTABLEテーブル上のステートメント、またはサーバ、あるいはまでキャッシュサイズに格納された情報は、サイズがクリーンアップinnodb_ft_cache_sizeまたは指定innodb_ft_total_cache_sizeシステム構成パラメータを実行する超えます。デフォルトでは、レコードのデータは、新しく行のニーズに挿入されたテーブルデータのフルテキストインデックスを記録するinnodb_ft_aux_tableシステム構成パラメータの指定を使用する必要はありません。
-
照会テーブルのアカウントにはPROCESS権限が必要で、テーブルは一時テーブルメモリエンジンです
7.のInnoDB層関連付けられた圧縮辞書テーブル
INNODB_CMP和INNODB_CMP_RESET:
-
圧縮されたページテーブルInnoDBの動作に関するステータス情報は、データベース内のテーブル内の参照データは、INNODBテーブル圧縮の効果を測定します。
-
ユーザー照会テーブルは、PROCESS権限を持っている必要があり、テーブルは一時テーブルメモリエンジンです
INNODB_CMP_PER_INDEX和INNODB_CMP_PER_INDEX_RESET:
-
InnoDBの圧縮テーブルのデータ及び運転状態に関する指標情報特定テーブルの圧縮性能及び有用性を評価するための基準データを提供するために、異なる統計を使用して、データベースの、テーブルの組み合わせごとに、索引。
-
InnoDBの圧縮テーブルの場合、データテーブルは、すべてのセカンダリインデックスが圧縮されます。このとき、テーブル内のデータは、クラスタ化インデックスは、すべてのデータ列が含まれていると考えられています。
-
注:原因は、各メジャーに対して別のインデックスは、パフォーマンスの大幅な削減につながるので、デフォルトでは収集しませINNODB_CMP_PER_INDEXのINNODB_CMP_PER_INDEX_RESETテーブルの統計を行います収集します。必要と判断した場合、システム構成パラメータがinnodb_cmp_per_index_enabled有効にする(設定パラメータは動的変数であり、デフォルトではOFFです)。
-
照会テーブルのアカウントにはPROCESS権限が必要で、テーブルは一時テーブルメモリエンジンです
INNODB_CMPMEM和INNODB_CMPMEM_RESET:
-
この2つのテーブルはInnoDBは、InnoDBの測定データベーステーブルの圧縮効率を基準として設けられた圧縮ページ・バッファ・プールのステータス情報に記録されています
-
照会テーブルのアカウントにはPROCESS権限が必要で、テーブルは一時テーブルメモリエンジンです
その他の参照https://dev.mysql.com/doc/refman/5.7/en/information-schema.html