MySQLメタデータベース-information_schema

6158 ワード

普段MySQLクライアントを使ってデータベースを操作している人は、少し気をつけてみると、私たちが建てたライブラリのほかに、3つのデータベースの影がよく見られます.
1. information_schema
2. performance_schema
3. mysql

この3つのデータベースはいったい何なのでしょうか.今日はMySQLの3人の銃士のinformationをよく知ってみましょう.schema.
一、データベースインスタンスとデータベース
informationを知っていますschemaの前に、データベース・インスタンスとデータベースの違いと連絡について説明します.私たちがローカルでMySQLサービスを開始したのは、データベース・インスタンスを開始したことです.彼はまずプロセスで一連のデータベース・ファイルを管理しています.create database cmcc_webというSQL文を実行するとき、本当にデータベースを作成します.彼はテーブルのセットであり、ファイルのセットでもあります.簡単に言えば、データベースインスタンスはRDBMS(データベース管理システム)、データベースはDatabase、Databaseはデータを格納する倉庫、RDBMSは倉庫を管理するシステムである.MySQLでは、各schemaが対応するデータベースです.この言葉は次のページに頻繁に登場します.
二、データベースメタデータ
メタ(meta)は、一般的に私たちに「について」と訳されています.メタデータ(meta data)——「data about data」データに関するデータは、一般に構造化データ(データベースに格納されたデータ、フィールドの長さ、タイプなどを規定したもの)である.(この話は知っているからだ).だからmetadataはデータを記述するデータで、MySQLではdatabaseを記述するデータです.どのデータベースがあるか、各テーブルにどのテーブルがあるか、テーブルにどのフィールドがあるか、フィールドがどのタイプなのかなど、データがデータベースのメタデータです.
公式定義:
INFORMATION_SCHEMA provides access to database metadata, information about the MySQL server such as the name of a database or table, the data type of a column, or access privileges
以上、informationと呼ぶことができます.schemaはメタデータベースです.それは不動産会社の情報庫のようなもので、管理されているビルごとにエレベーター、エレベーターの型番、部屋ごとの長さと幅などをよく知っています.
三、よくある表
1、SCHEMATAはデータベース情報を提供し、どのデータベースがあるか、文字セットがGBKなのかUTF-8なのかなど.共通フィールド:
フィールド名
意味
コメント
SCHEMA_NAME
データベース名
DEFAULT_CHARACTER_SET_NAME
文字セット
DEFAULT_COLLATION_NAME
ソート・ルール
同等命令:SHOW DATABASES2、TABLESはテーブルの情報を提供し、データベースにはどのテーブルがあり、どのストレージエンジンがあるかなど.共通フィールド:
フィールド名
意味
コメント
SCHEMA_NAME
データベース名
TABLE_NAME
テーブル名
TABLE_TYPE
テーブルのタイプ
タイプはBASE TABLE、VIEW、SYSTEM VIEW
ENGINE
ストレージエンジン
CREATE_TIME
テーブル作成時間
同等命令:SHOW TABLES3、COLUMNSはフィールドの情報を提供し、どのフィールドのフィールドタイプが何であるかなどがある.共通フィールド:
フィールド名
意味
コメント
SCHEMA_NAME
データベース名
TABLE_NAME
テーブル名
COLUMN_NAME
フィールド名
COLUMN_TYPE
フィールドタイプ
例えばint(10)、varchar(250)
同等コマンド:SHOW COLUMNSまたはdesc tctest.emp empテーブルの具体的なフィールドを参照してください.
4、STATISTICSという表の単語は統計の意味ですが、インデックスの情報なので、おかしいですね.共通フィールド:
フィールド名
意味
コメント
SCHEMA_NAME
データベース名
TABLE_NAME
テーブル名
INDEX_SCHEMA
データベース名でもあります
INDEX_NAME
索引名
COLUMN_NAME
フィールド名
INDEX_TYPE
索引タイプ
一般的にBTREE
同等命令:SHOW INDEX5、TABLE_CONTRAINTSは制約を提供していますが、テーブルにどのような制約があるか見てみましょう.コンストレイントとは、一意性コンストレイント、プライマリキーコンストレイント、外部キーコンストレイントを指します.共通フィールド:
フィールド名
意味
コメント
CONSTRAINT_SCHEMA
データベース名
CONSTRAINT_NAME
コンストレイント名
TABLE_SCHEMA
データベース名でもあります
TABLE_NAME
テーブル名
CONSTRAINT_TYPE
制約タイプ
UNIQUE、PRIMARY KEY、FOREIGN KEY
ユニークコンストレイントとプライマリ・キーコンストレイントは、前のインデックスと同様に確認できます.
6、KEY_COLUMN_USAGEにはSTATISTICSとTABLEがありますCONTRAINTS表、なぜKEYが必要なのかCOLUMN_USAGE? 外部キーでは、どのテーブルのどのフィールドが参照されているかは示されていません.共通フィールド:
フィールド名
意味
コメント
CONSTRAINT_SCHEMA
データベース名
CONSTRAINT_NAME
コンストレイント名
PRIMARYまたはカラム名または外部キー名
TABLE_SCHEMA
データベース名でもあります
TABLE_NAME
テーブル名
COLUMN_NAME
列名
REFERENCED_TABLE_SCHEMA
参照データベース
REFERENCED_TABLE_NAME
参照テーブル
REFERENCED_COLUMN_NAME
参照カラム
前の2つに比べてKEY_COLUMN_USAGEという表の情報が一番そろっています.プライマリ・キー、外部キー、一意の制約が含まれます.
7、ROUTINES routinesはプログラムの意味で、MySQLではもちろん関数とストレージプロセスを指す
フィールド名
意味
コメント
SPECIFIC_NAME
プログラム名
ROUTINE_SCHEMA
データベース名
ROUTINE_NAME
プログラム名
ROUTINE_TYPE
プログラムの種類
PROCEDUREまたはFUNCTION
ROUTINE_BODY
かんすうたい
SQLのようです
ROUTINE_DEFINITION
具体的なプログラム文
show ROUTINES文はありません.
8、VIEWSクエリーデータベースの下のすべてのビュー
フィールド名
意味
コメント
TABLE_SCHEMA
データベース名
TABLE_NAME
テーブル名
VIEW_DEFINITION
ビュー定義文
9、TRIGGERSはすべてのトリガを検索する
フィールド名
意味
コメント
TRIGGER_SCHEMA
データベース名
TRIGGER_NAME
トリガ名
EVENT_OBJECT_SCHEMA
トリガーされたデータベース
EVENT_OBJECT_TABLE
トリガーされたテーブル
ACTION_STATEMENT
トリガされた文
ACTION_TIMING
トリガタイミング
BEFOREまたはAFTER
同等命令:show triggers from tctest10、その他の表ENGINES:InnoDB、MEMORY、MyISAMなどの各種ストレージエンジンに対する現在のデータベースのサポート状況を列挙する.同等show ENGINES GLOBAL_VARABLES:サーバ変数の設定、いくつかのスイッチと設定.同等命令show global variables.globalのほかにsessionもあります.PLUGINS:MySQLのプラグインリスト.ストレージエンジンInnoDBやbinlogがプラグインであることがわかります!binlogは強制的にロードされ、InnoDBはデフォルトで開いています.同等コマンドshow PLUGINS PROSCESSLIST:実行中のスレッドを表示!たとえば、このテーブルを調べると、クエリーのスレッドが表示されます.同等命令show full processlist四、表ですか、それともビューですか.
ドキュメントにinformation_schemaの下のテーブルは基本テーブルではなくビューです.しかしVIEWSでは調べられず、TABLESではこれらのテーブルが調べられ、テーブルタイプはSYSTEM VIEWである.ストレージエンジンは、MEMORYまたはMyISAMを使用しています.showコマンドの使用
show create table information_schema.`TABLES`;

作成されたのはテンポラリ・テーブルで、ストレージ・エンジンはMEMORYであることがわかります.
CREATE TEMPORARY TABLE `TABLES`(
)ENGINE=MEMORY

五、showコマンドかselect文か
showコマンドはより簡便で、同じ目的を達成できる場合もあります.しかし、出力フォーマットは固定されており、selectテーブルの結果はより完備しており、SQL規格に合致しています.
六、Oracleにinformation_があるschemaですか?
実践したことはありませんが、通常Oracleを使用しているときにこのライブラリを見たことはありません.公式FAQは結果を示した.
F:What is the difference between the Oracle Data Dictionary and MySQL INFORMATION_SCHEMA?
A:Both Oracle and MySQL provide metadata in tables. However, Oracle and MySQL use different table names and column names. The MySQL implementation is more similar to those found in DB2 and SQL Server, which also support INFORMATION_SCHEMA as defined in the SQL standard.
DB 2とSQL Serverはinformationをサポートしています.schema、Oracleにはメタデータ・テーブルがありますが、カラム名とテーブル名は異なります.