MySQL 8.0 リファレンスマニュアル


28.2 sys スキーマの使用

sys スキーマをデフォルトスキーマにすると、そのオブジェクトへの参照をスキーマ名で修飾する必要がなくなります:

mysql> USE sys;
Database changed
mysql> SELECT * FROM version;
+-------------+---------------+
| sys_version | mysql_version |
+-------------+---------------+
| 2.0.0       | 8.0.13-debug  |
+-------------+---------------+

(version ビューには、sys スキーマおよび MySQL サーバーのバージョンが表示されます。)

別のスキーマがデフォルトである (または単に明示的である) ときに sys スキーマオブジェクトにアクセスするには、オブジェクト参照をスキーマ名で修飾します:

mysql> SELECT * FROM sys.version;
+-------------+---------------+
| sys_version | mysql_version |
+-------------+---------------+
| 2.0.0       | 8.0.13-debug  |
+-------------+---------------+

sys スキーマには、様々な方法で「パフォーマンススキーマ」テーブルを要約する多数のビューが含まれています。 これらのビューのほとんどはペアになっているため、ペアのメンバーは他のメンバーと同じ名前に x$ 接頭辞を付けたものになります。 たとえば、host_summary_by_file_io ビューでは、ホスト別にグループ化されたファイル I/O が要約され、ピコ秒からより読みやすい値 (単位付き) に変換された待機時間が表示されます

mysql> SELECT * FROM sys.host_summary_by_file_io;
+------------+-------+------------+
| host       | ios   | io_latency |
+------------+-------+------------+
| localhost  | 67570 | 5.38 s     |
| background |  3468 | 4.18 s     |
+------------+-------+------------+

x$host_summary_by_file_io ビューには、同じデータが要約されますが、書式設定されていないピコ秒待機時間が表示されます:

mysql> SELECT * FROM sys.x$host_summary_by_file_io;
+------------+-------+---------------+
| host       | ios   | io_latency    |
+------------+-------+---------------+
| localhost  | 67574 | 5380678125144 |
| background |  3474 | 4758696829416 |
+------------+-------+---------------+

x$ 接頭辞のないビューは、人間が読みやすくわかりやすい出力を提供することを目的としています。 同じ値を RAW 形式で表示する x$ 接頭辞を持つビューは、データに対して独自の処理を実行する他のツールでの使用を目的としています。 x$ 以外と x$ 以外のビューの違いの詳細は、セクション28.4.3「sys スキーマビュー」 を参照してください。

sys スキーマオブジェクト定義を調べるには、適切な SHOW ステートメントまたは INFORMATION_SCHEMA クエリーを使用します。 たとえば、session ビューおよび format_bytes() 関数の定義を調べるには、次のステートメントを使用します:

mysql> SHOW CREATE VIEW sys.session;
mysql> SHOW CREATE FUNCTION sys.format_bytes;

ただし、これらのステートメントは、比較的フォーマットされていない形式で定義を表示します。 読みやすい形式でオブジェクト定義を表示するには、MySQL ソース配布の scripts/sys_schema にある個々の .sql ファイルにアクセスします。 MySQL 8.0.18 より前は、ソースは https://github.com/mysql/mysql-syssys スキーマ開発 web サイトから入手可能な個別の配布で管理されます。

デフォルトでは、mysqldumpmysqlpumpsys スキーマをダンプしません。 ダンプファイルを生成するには、次のいずれかのコマンドを使用して、コマンドラインで sys スキーマに明示的に名前を付けます:

mysqldump --databases --routines sys > sys_dump.sql
mysqlpump sys > sys_dump.sql

ダンプファイルからスキーマを再インストールするには、次のコマンドを使用します:

mysql < sys_dump.sql

関連キーワード:  sys, スキーマ, summary, プロシージャ, 関数, latency, host, file, schema, user