MySQLでは
information_schema
performance_schema
mysql
sys
という4つのデータベースが最初から用意されていますが
これらの違いについて調べたメモ。
information_schema
- 実際に作られたデータベースに関する情報を格納するデータベース。
- 例えば「test」というデータベースを作った場合、「test」データベースの「名前」「テーブル名」「カラム名」「型」「ストレージエンジン名」などが格納される。
performance_schema
- データベースのパフォーマンスを向上させるために利用するデータベース。
- 使ったことがないので良く分からないのですが、データベースのパフォーマンスに関する情報がいろいろ格納されていて、それを見つつ「こういう風なクエリにしたほうが高速に動くぞい」みたいなチューニングをしたりするのに利用するっぽい。
mysql
- MySQL全般の設定が格納されたデータベース。
- 例えば、MySQLにログインするための「ユーザー」「パスワード」「ホスト」などの情報が格納されていたり。
sys
performance_schema
やinformation_schema
の上位互換?
sys
は以下とのことです。
sys
について
performance_schema
自体は便利な機能ではあるのですが、情報が取り出しにくいという課題がありました。そこで、MySQL5.7以降では、
sys
という機能が登場しました。
これは、performance_schema
とinformation_schema
(テーブルやカラム型などのDB内部メタ情報を持つスキーマ)を見やすくしたもので、実体はビューやプロシージャ、関数の集まりです。そのため
performance_schem
が有効化されていれば、sys
の機能も有効となります。
実際にはperformance_schema
やinformation_schema
を使わずに、sys
を使ったほうが良いってことなんですかね・・。
知識不足なせいで理解できない(T_T)
おわり
コメント