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-sys の sys
スキーマ開発 web サイトから入手可能な個別の配布で管理されます。
デフォルトでは、mysqldump も mysqlpump も sys
スキーマをダンプしません。 ダンプファイルを生成するには、次のいずれかのコマンドを使用して、コマンドラインで sys
スキーマに明示的に名前を付けます:
mysqldump --databases --routines sys > sys_dump.sql
mysqlpump sys > sys_dump.sql
ダンプファイルからスキーマを再インストールするには、次のコマンドを使用します:
mysql < sys_dump.sql