導入
久しぶりに、 mysqlを使ったら、information_schema,sys...などのたくさん知らないデータベースが既にある。
ITのえんぴつ🐱:「…なんだろう?システムデータベース?それとも、私が作ったユーザーデータベース?」と思って、調べたので、メモ。
要約
MySQLデータベースに存在するinformation_schema,sys...は、システムデータベースです。
それぞれの違いはこちら。
- information_schema ……サーバーに関する情報を保存。
- performance_schema……パフォーマンスに関する情報を保存。
- mysql……実行時に必要な情報を保存。
- 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つのシステムデータベースが表示されていたのに対して、
MySQL Workbenchでは、2つのシステムデータベースでした。
そこで、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 内部で使用されるデータベースです。
それぞれの違いはこちら。
- information_schema ……サーバーに関する情報を保存。
- performance_schema……パフォーマンスに関する情報を保存。
- mysql……実行時に必要な情報を保存。
- sys……performance_schemaとinformation_schemaから、見やすく情報を取得。