ITのえんぴつ

Google Blockly開発者ツールやIT・プログラミングを研究して発信するブログ

[MySQLデータベース] information_schema,sys...とは?

導入

久しぶりに、 mysqlを使ったら、information_schema,sys...などのたくさん知らないデータベースが既にある

ITのえんぴつ🐱:「…なんだろう?システムデータベース?それとも、私が作ったユーザーデータベース?」と思って、調べたので、メモ。

要約

MySQLデータベースに存在するinformation_schema,sys...は、システムデータベースです。

それぞれの違いはこちら。

  1. information_schema ……サーバーに関する情報を保存。
  2. performance_schema……パフォーマンスに関する情報を保存。
  3. mysql……実行時に必要な情報を保存。
  4. sys……performance_schemaとinformation_schemaから、見やすく情報を取得。

環境

システムデータベースとユーザーデータベースとは?

今回の「MySQLデータベースに存在するinformation_schema,sys...は何?」という疑問を考える際は、データベースを大きく2種類に分けて考えてみましょう。

その2つとは、システムデータベースとユーザーデータベースです。

システムデータベースとは?

  • 名前の通り、MySQL Server 内部で使用されるデータベースす。
  • MySQL Server をインストールしたタイミングで作成されます。
  • システムデータベース以外は、ユーザーデータベースです。

ユーザー データベースとは?

名前の通りユーザーやアプリで作成したデータベースとなります

よって、今回の疑問だったinformation_schema,sys…は、システムデータベースと呼ばれます。

MySQLのシステムデータベースは?

MySQLでは、初期状態で「information_schema」、「sys」などのシステムデータベースが作成されます。このシステムデータベースは、非表示・表示などの設定ができます。

そのため、システムデータベースは、各環境によって表示が異なります今回は、私の環境で表示されていた4つをご紹介します。

ツールの違い

A5:SQL Mk-2では、4つのシステムデータベースが表示されていたのに対して、

A5:SQL Mk-2では、4つのシステムデータベースが表示されたスクリーンショット

MySQL Workbenchでは、2つのシステムデータベースでした。

MySQL Workbenchでは、2つのシステムデータベースが表示されたスクリーンショット

そこで、MySQL Workbench にて、SQLコマンドで確認をすると、ありました。

MySQL Workbench にて、SQLコマンドで確認しているスクリーンショット

上記のように、MySQL Workbenchでデータベースが表示されない時は、こちらの記事で解決できるそうです。

同様の事象があった方は、参考にしてみてください。

参考:MySQL Workbenchでスキーマが表示されない!?

・システムデータベース4つの違いは?

1.information_schema

サーバーに関する情報を保存。

  → データベース・テーブルの名前、カラムのデータ型、アクセス権限など

2. performance_schema

パフォーマンスに関する情報を保存。

  → 実行環境が重いなどのボトルネックを調べて調整するDB管理者向け。

3. mysql

サーバーの実行時に必要な情報を保存。

4. sys

performance_schemaとinformation_schemaから、見やすく情報を取得。

 → ビューやプロシージャや関数の集まり。

MySQL Serverの様々な状態を保存。

 → プロセス状態、ホストの状態、セッションやメモリの状態など。

まとめ

MySQLデータベースに存在するinformation_schema,sys...は、システムデータベースです。

システムデータベースとは、名前の通り、MySQL Server 内部で使用されるデータベースです。

それぞれの違いはこちら。

  1. information_schema ……サーバーに関する情報を保存。
  2. performance_schema……パフォーマンスに関する情報を保存。
  3. mysql……実行時に必要な情報を保存。
  4. sys……performance_schemaとinformation_schemaから、見やすく情報を取得。

参考