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)

 

おわり

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

1991生まれ。WEBエンジニア。

技術スタック:TypeScript/Next.js/Express/Docker/AWS

フォローする
フォローする

コメント

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