MySQL道普請便り
第166回 Performance_schema関数
概要
performance_
今回はこれらの関数について紹介します。なお,
format_bytes()
format_1023
を与えた場合は1023 bytes
という文字列が表示され,536870912
を与えると512.
が表示されるように,
実際にいくつか数値を投げて確認してみます。
mysql> SELECT FORMAT_BYTES(1023), FORMAT_BYTES(536870912), FORMAT_BYTES(47193858765) ; +--------------------+-------------------------+---------------------------+ | FORMAT_BYTES(1023) | FORMAT_BYTES(536870912) | FORMAT_BYTES(47193858765) | +--------------------+-------------------------+---------------------------+ | 1023 bytes | 512.00 MiB | 43.95 GiB | +--------------------+-------------------------+---------------------------+ 1 row in set (0.00 sec)
それぞれの引数に対して,
これはファイルサイズや,
mysql> SELECT NAME,FILE_SIZE,FORMAT_BYTES(FILE_SIZE), ALLOCATED_SIZE, FORMAT_BYTES(ALLOCATED_SIZE) FROM information_schema.innodb_tablespaces WHERE NAME = 'd1/dummy'; +----------+-----------+-------------------------+----------------+------------------------------+ | NAME | FILE_SIZE | FORMAT_BYTES(FILE_SIZE) | ALLOCATED_SIZE | FORMAT_BYTES(ALLOCATED_SIZE) | +----------+-----------+-------------------------+----------------+------------------------------+ | d1/dummy | 9437184 | 9.00 MiB | 9437184 | 9.00 MiB | +----------+-----------+-------------------------+----------------+------------------------------+ 1 row in set (0.00 sec) $ ll -h /data/sample_mysql/d1/dummy.ibd -rw-r----- 1 mysql mysql 9.0M Apr 30 2020 /data/sample_mysql/d1/dummy.ibd
単位が変換されて確認することができました。
これはテーブルサイズだけでなく,
- ※)
- 単位の変換は10の3乗ごと
(キロ, メガ, テラ) ではなく, 1024のn乗ごと (キビ, メビ, テビ) であるのに注意してください。
sys.format_bytes()との違い
8.
ただし公式ドキュメントにもあるように,
format_pico_time()
format_3
を与えた場合は3 ps
と表示されますが,300000000000000
を与えると5.
例として,
mysql> SELECT DIGEST_TEXT, COUNT_STAR, SUM_ROWS_SENT, SUM_ROWS_EXAMINED, FIRST_SEEN, FORMAT_PICO_TIME(QUERY_SAMPLE_TIMER_WAIT) FROM performance_schema.events_statements_summary_by_digest where DIGEST_TEXT like '%dummy%'\G *************************** 1. row *************************** DIGEST_TEXT: ANALYZE TABLE `d1` . `dummy` COUNT_STAR: 1 SUM_ROWS_SENT: 0 SUM_ROWS_EXAMINED: 0 FIRST_SEEN: 2022-02-20 20:36:39.163430 FORMAT_PICO_TIME(QUERY_SAMPLE_TIMER_WAIT): 10.06 s
ピコ秒で表示されるデータがs
sys.format_time()との違い
sysスキーマにはformat_
また,
分の表示
組み込み関数format_
mysql> SELECT format_pico_time(300000000000000), sys.format_time(300000000000000); +-----------------------------------+----------------------------------+ | format_pico_time(300000000000000) | sys.format_time(300000000000000) | +-----------------------------------+----------------------------------+ | 5.00 min | 5 m | +-----------------------------------+----------------------------------+ 1 row in set (0.01 sec)
w(week)の削除
組み込み関数format_
mysql> SELECT format_pico_time(724800000000000000), sys.format_time(724800000000000000); +--------------------------------------+-------------------------------------+ | format_pico_time(724800000000000000) | sys.format_time(724800000000000000) | +--------------------------------------+-------------------------------------+ | 8.39 d | 1.2 w | +--------------------------------------+-------------------------------------+ 1 row in set (0.00 sec)
その他のPerformance_schema関数
WL#13439にもあるように,
これもsysのps_
mysql> SELECT ps_thread_id(null), sys.ps_thread_id(null); +--------------------+------------------------+ | ps_thread_id(null) | sys.ps_thread_id(null) | +--------------------+------------------------+ | NULL | 65 | +--------------------+------------------------+ 1 row in set (0.00 sec)
ただし,
まとめ
今回はPerformance_
バックナンバー
MySQL道普請便り
関連記事
- 第54回 オープンソースカンファレンス大阪・東京のOSS-DB企画,MySQL 8.0.19リリース & MySQL NDB Cluster 8.0 GA,PostgreSQL関連情報
- 第51回 「企業ITシステムのモダナイゼーションとデータベース最新状況」報告,MySQL 8.0.18リリース,PostgreSQL 12リリース
- ゲームを題材に学ぶ 内部構造から理解するMySQL
- 第50回 OSC .Enterpriseにて特別セミナー開催, Oracle OpenWorld 2019でのMySQL関連の話題,PostgreSQLはイベントからの関連情報
- 第6回 DBサーバでゲームの処理を作るとどうなる?