information_schema/performance_schema/mysql/sysデータベースの違い【MySQL】

MySQLでは

  • information_schema
  • performance_schema
  • mysql
  • sys

という4つのデータベースが最初から用意されていますが

 

これらの違いについて調べたメモ。

  • information_schema
    • 実際に作られたデータベースに関する情報を格納するデータベース。
    • 例えば「test」というデータベースを作った場合、「test」データベースの「名前」「テーブル名」「カラム名」「型」「ストレージエンジン名」などが格納される。
  • performance_schema
    • データベースのパフォーマンスを向上させるために利用するデータベース。
    • 使ったことがないので良く分からないのですが、データベースのパフォーマンスに関する情報がいろいろ格納されていて、それを見つつ「こういう風なクエリにしたほうが高速に動くぞい」みたいなチューニングをしたりするのに利用するっぽい。
  • mysql
    • MySQL全般の設定が格納されたデータベース。
    • 例えば、MySQLにログインするための「ユーザー」「パスワード」「ホスト」などの情報が格納されていたり。
  • sys
    • performance_schemainformation_schemaの上位互換?

 

sysは以下とのことです。

sysについて

performance_schema自体は便利な機能ではあるのですが、情報が取り出しにくいという課題がありました。

そこで、MySQL5.7以降では、sysという機能が登場しました。
これは、performance_schemainformation_schema(テーブルやカラム型などのDB内部メタ情報を持つスキーマ)を見やすくしたもので、実体はビューやプロシージャ、関数の集まりです。

そのためperformance_schemが有効化されていれば、sysの機能も有効となります。

引用:MySQLのsysスキーマを利用して不要インデックスを断捨離する話 – Qiita

 

実際にはperformance_schemainformation_schemaを使わずに、sysを使ったほうが良いってことなんですかね・・。

知識不足なせいで理解できない(T_T)

 

おわり

MySQL
スポンサーリンク
この記事を書いた人
penpen

1991生まれ。
2019年くらいからフロントエンドエンジニアを目指している元アフィリエイターです💩

penpenをフォローする
penpenをフォローする
penpenメモ

コメント

タイトルとURLをコピーしました