構成を変更するために使用される保存されたプロシージャ| sysシステムライブラリの包括的な理解

このシリーズでは、sysシステムライブラリのビューを紹介するために多くのスペースが使用されました。これらのビューを使用すると、performance_schemaおよびinformation_schemaの下のコンテンツを簡単かつ迅速にクエリできます。ただし、performance_schemaの下の機器およびコンシューマー構成情報は、変更が必要なコンテンツに属します。 updateステートメントを直接使用して構成テーブルを変更することに加えて、クエリビューに似たショートカットはありますか?はい、この問題の内容は、変更と構成の確認に関連するいくつかのストレージ手順を紹介し始めています。

PS:以下では、ストアドプロシージャの定義テキストが短い場合、いくつかのストアドプロシージャの定義テキストが一覧表示されるため、より直感的に学習できます。保存されたプロシージャ定義テキストが長すぎる場合は、記事「Getting to know | sysシステムライブラリの包括的な理解」で紹介されているダウンロードパスに従って自分でダウンロードして表示してください

01

ps_setup_disable_background_threads()

すべてのバックグラウンドスレッドのパフォーマンスイベント収集機能を無効にします。ストアドプロシージャは、performance_schema.threadsテーブルを変更し、すべてのバックグラウンドスレッドのインストルメントフィールドをNOに設定することで実装されます。

  • ストアドプロシージャは、実行時にパラメータを必要とせず、閉じられたスレッドの数の値を返します(ROW_COUNT()関数が戻り値として使用され、実際に変更された行の数のみを記録するため、すでに閉じられたスレッドはカウントされません) 、閉じたスレッドはパフォーマンスイベントデータを収集しません

保存されたプロシージャ定義ステートメントのテキスト

DROP PROCEDURE IF EXISTS ps_setup_disable_background_threads;
DELIMITER $$
CREATE DEFINER='root'@'localhost' PROCEDURE ps_setup_disable_background_threads ()
COMMENT '
......
SQL SECURITY INVOKER
NOT DETERMINISTIC
MODIFIES SQL DATA
BEGIN
UPDATE performance_schema.threads
  SET instrumented = 'NO'
WHERE type = 'BACKGROUND';

SELECT CONCAT('Disabled ', @rows := ROW_COUNT(), ' background thread', IF(@rows != 1, 's', '')) AS summary;
END$$
DELIMITER ;

例(パラメーターを渡す必要はありません)

admin@localhost : sys 09:48:12> CALL sys.ps_setup_disable_background_threads();
+--------------------------------+
| summary                        |
+--------------------------------+
| Disabled 40 background threads |
+--------------------------------+
1 row in set (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

02

ps_setup_disable_consumer()

指定されたコンシューマーを無効にします。ストアドプロシージャは、performance_schema.setup_consumersテーブルを変更することで実装されます。呼び出すときは、コンシューマー名の文字列をパラメーター値として渡し、performance_schema.setup_consumersテーブルの有効なフィールドをNOに変更して、閉じたコンシューマーの数を返す必要があります(既にROW_COUNT()関数が戻り値として使用され、実際に変更された行のみが記録されるため、クローズ状態のコンシューマーはカウントされません)

  • 渡されたパラメータ文字列は、%consumer%のように内部的に使用され、performance_schema.setup_consumersテーブルの名前フィールドとあいまいに一致します。

パラメータ:

  • Consumer VARCHAR(128):%consumer%のような形式を使用して、消費者名の値を照合します。setup_consumersテーブルの名前フィールドをあいまいに照合してUPDATE操作を実行します。渡された値がnull値の場合、すべてに一致することに注意してください。消費者

保存されたプロシージャ定義ステートメントのテキスト

DROP PROCEDURE IF EXISTS ps_setup_disable_consumer;
DELIMITER $$
CREATE DEFINER='root'@'localhost' PROCEDURE ps_setup_disable_consumer (
    IN consumer VARCHAR(128)
)
COMMENT '
        Description
        -----------

        Disables consumers within Performance Schema 
        matching the input pattern.

        Parameters
        -----------

        consumer (VARCHAR(128)):
          A LIKE pattern match (using "%consumer%") of consumers to disable

        Example
        -----------

        To disable all consumers:

        mysql> CALL sys.ps_setup_disable_consumer(\'\');
        +--------------------------+
        | summary                  |
        +--------------------------+
        | Disabled 15 consumers    |
        +--------------------------+
        1 row in set (0.02 sec)

        To disable just the event_stage consumers:

        mysql> CALL sys.ps_setup_disable_comsumers(\'stage\');
        +------------------------+
        | summary                |
        +------------------------+
        | Disabled 3 consumers  |
        +------------------------+
        1 row in set (0.00 sec)
        '
SQL SECURITY INVOKER
NOT DETERMINISTIC
MODIFIES SQL DATA
BEGIN
UPDATE performance_schema.setup_consumers
  SET enabled = 'NO'
WHERE name LIKE CONCAT('%', consumer, '%');

SELECT CONCAT('Disabled ', @rows := ROW_COUNT(), ' consumer', IF(@rows != 1, 's', '')) AS summary;
END$$
DELIMITER ;

例(ストアドプロシージャのコメントセクションを参照してください。以下のコメント付きのストアドプロシージャ定義ステートメントの使用例はすべてコメントセクションを参照するため、再度説明することはありません)。

03

ps_setup_disable_instrument()

performance_schema.setup_instrumentsテーブルを変更して、指定された機器を無効にします。呼び出し中に渡された値は、ストアドプロシージャの内部更新ステートメントの名前フィールドの値として使用され、有効フィールドと時間指定フィールドはNOに変更され、いくつかの閉じた機器(すでに閉じた状態になっている)が返されます。 ROW_COUNT()関数が戻り値として使用され、実際に変更された行のみが記録されるため、インスツルメントはカウントされません)

  • 着信パラメータ文字列は、%in_pattern%;のような形式を使用して、setup_instrumentsテーブルの名前フィールドにあいまいに一致します。

パラメータ:

  • in_pattern VARCHAR(128):%in_pattern%のような形式を使用して、機器名の値を一致させます。setup_instrumentssテーブルの名前フィールドをあいまいに一致させてUPDATE操作を実行します。渡された値がnull値の場合、すべてに一致することに注意してください。楽器

保存されたプロシージャ定義ステートメントのテキスト

DROP PROCEDURE IF EXISTS ps_setup_disable_instrument;
DELIMITER $$
CREATE DEFINER='root'@'localhost' PROCEDURE ps_setup_disable_instrument (
    IN in_pattern VARCHAR(128)
)
COMMENT '
        Description
        -----------

        Disables instruments within Performance Schema 
        matching the input pattern.

        Parameters
        -----------

        in_pattern (VARCHAR(128)):
          A LIKE pattern match (using "%in_pattern%") of events to disable

        Example
        -----------

        To disable all mutex instruments:

        mysql> CALL sys.ps_setup_disable_instrument(\'wait/synch/mutex\');
        +--------------------------+
        | summary                  |
        +--------------------------+
        | Disabled 155 instruments |
        +--------------------------+
        1 row in set (0.02 sec)

        To disable just a specific TCP/IP based network IO instrument:

        mysql> CALL sys.ps_setup_disable_instrument(\'wait/io/socket/sql/server_tcpip_socket\');
        +------------------------+
        | summary                |
        +------------------------+
        | Disabled 1 instruments |
        +------------------------+
        1 row in set (0.00 sec)

        To disable all instruments:

        mysql> CALL sys.ps_setup_disable_instrument(\'\');
        +--------------------------+
        | summary                  |
        +--------------------------+
        | Disabled 547 instruments |
        +--------------------------+
        1 row in set (0.01 sec)
        '
SQL SECURITY INVOKER
NOT DETERMINISTIC
MODIFIES SQL DATA
BEGIN
UPDATE performance_schema.setup_instruments
  SET enabled = 'NO', timed = 'NO'
WHERE name LIKE CONCAT('%', in_pattern, '%');

SELECT CONCAT('Disabled ', @rows := ROW_COUNT(), ' instrument', IF(@rows != 1, 's', '')) AS summary;
END$$
DELIMITER ;

04

ps_setup_disable_thread()

performance_schema.threadsテーブルを変更して、指定したスレッドのパフォーマンスイベント収集機能を無効にします。呼び出し時に渡された値は、ストアドプロシージャの内部ステートメントのprocesslist_idフィールド値(またはshow processlist;出力IDフィールド値)として使用され、インストルメントされたフィールドはNOに変更されます。閉じられたスレッドの数を返します(ROW_COUNT()関数が戻り値として使用され、実際に変更された行のみを記録するため、すでに閉じた状態にあるスレッドはカウントされません)

パラメータ:

  • in_connection_id BIGINT:接続ID(プロセスID)。これは、performance_schema.theadsテーブルのPROCESSLIST_ID列またはSHOWPROCESSLISTによって出力されるid列の値です。

保存されたプロシージャ定義ステートメントのテキスト

DROP PROCEDURE IF EXISTS ps_setup_disable_thread;
DELIMITER $$
CREATE DEFINER='root'@'localhost' PROCEDURE ps_setup_disable_thread (
    IN in_connection_id BIGINT
)
COMMENT '
        Description
        -----------

        Disable the given connection/thread in Performance Schema.

        Parameters
        -----------

        in_connection_id (BIGINT):
          The connection ID (PROCESSLIST_ID from performance_schema.threads
          or the ID shown within SHOW PROCESSLIST)

        Example
        -----------

        mysql> CALL sys.ps_setup_disable_thread(3);
        +-------------------+
        | summary          |
        +-------------------+
        | Disabled 1 thread |
        +-------------------+
        1 row in set (0.01 sec)

        To disable the current connection:

        mysql> CALL sys.ps_setup_disable_thread(CONNECTION_ID());
        +-------------------+
        | summary          |
        +-------------------+
        | Disabled 1 thread |
        +-------------------+
        1 row in set (0.00 sec)
        '
SQL SECURITY INVOKER
NOT DETERMINISTIC
MODIFIES SQL DATA
BEGIN
UPDATE performance_schema.threads
  SET instrumented = 'NO'
WHERE processlist_id = in_connection_id;

SELECT CONCAT('Disabled ', @rows := ROW_COUNT(), ' thread', IF(@rows != 1, 's', '')) AS summary;
END$$
DELIMITER ;

05

ps_setup_enable_background_threads()

すべてのバックグラウンドスレッドのパフォーマンスイベント収集機能を有効にするには、performance_schema.threadsテーブルを変更し、すべてのバックグラウンドスレッドのインストルメントフィールドをYESに設定し、パフォーマンスイベント収集機能が有効になっているスレッドの数を返します(すでに有効な状態にあるスレッドはカウントされません)。カウント、ROW_COUNT()関数が戻り値として使用されるため、この関数は実際に変更された行のみを記録します)

  • ストアドプロシージャの実行時にパラメータを指定する必要はありません

保存されたプロシージャ定義ステートメントのテキスト

DROP PROCEDURE IF EXISTS ps_setup_enable_background_threads;
DELIMITER $$
CREATE DEFINER='root'@'localhost' PROCEDURE ps_setup_enable_background_threads ()
COMMENT '
        Description
        -----------

        Enable all background thread instrumentation within Performance Schema.

        Parameters
        -----------

        None.

        Example
        -----------

        mysql> CALL sys.ps_setup_enable_background_threads();
        +-------------------------------+
        | summary                      |
        +-------------------------------+
        | Enabled 18 background threads |
        +-------------------------------+
        1 row in set (0.00 sec)
        '
SQL SECURITY INVOKER
NOT DETERMINISTIC
MODIFIES SQL DATA
BEGIN
UPDATE performance_schema.threads
  SET instrumented = 'YES'
WHERE type = 'BACKGROUND';

SELECT CONCAT('Enabled ', @rows := ROW_COUNT(), ' background thread', IF(@rows != 1, 's', '')) AS summary;
END$$
DELIMITER ;

06

ps_setup_enable_consumer()

performance_schema.setup_consumersテーブルを変更して、指定したコンシューマーを有効にします。呼び出し時に渡された値は、ストアドプロシージャの内部ステートメントの名前フィールドの値として使用され、有効なフィールドはYESに変更され、有効なコンシューマーの数が返されます(すでに有効な状態にあるコンシューマーはカウントされません)。カウント、ROW_COUNT()関数が戻り値として使用されるため、この関数は実際に変更された行のみを記録します)

  • 着信パラメータ文字列は、%consumer%;のような形式を使用して、setup_consumersテーブルの名前フィールドとあいまいに一致します。

パラメータ:

  • Consumer VARCHAR(128):%consumer%のような形式を使用して、消費者名の値を照合します。setup_consumersテーブルの名前フィールドをあいまいに照合してUPDATE操作を実行します。渡された値がnull値の場合、すべてに一致することに注意してください。消費者

保存されたプロシージャ定義ステートメントのテキスト

DROP PROCEDURE IF EXISTS ps_setup_enable_consumer;
DELIMITER $$
CREATE DEFINER='root'@'localhost' PROCEDURE ps_setup_enable_consumer (
    IN consumer VARCHAR(128)
)
COMMENT '
        Description
        -----------

        Enables consumers within Performance Schema 
        matching the input pattern.

        Parameters
        -----------

        consumer (VARCHAR(128)):
          A LIKE pattern match (using "%consumer%") of consumers to enable

        Example
        -----------

        To enable all consumers:

        mysql> CALL sys.ps_setup_enable_consumer(\'\');
        +-------------------------+
        | summary                |
        +-------------------------+
        | Enabled 10 consumers    |
        +-------------------------+
        1 row in set (0.02 sec)

        Query OK, 0 rows affected (0.02 sec)

        To enable just "waits" consumers:

        mysql> CALL sys.ps_setup_enable_consumer(\'waits\');
        +-----------------------+
        | summary              |
        +-----------------------+
        | Enabled 3 consumers  |
        +-----------------------+
        1 row in set (0.00 sec)

        Query OK, 0 rows affected (0.00 sec)
        '
SQL SECURITY INVOKER
NOT DETERMINISTIC
MODIFIES SQL DATA
BEGIN
UPDATE performance_schema.setup_consumers
  SET enabled = 'YES'
WHERE name LIKE CONCAT('%', consumer, '%');

SELECT CONCAT('Enabled ', @rows := ROW_COUNT(), ' consumer', IF(@rows != 1, 's', '')) AS summary;
END$$
DELIMITER ;

07

ps_setup_enable_instrument()

指定された機器は、performance_schema.setup_instrumentsテーブルを変更することで有効になります。呼び出し中に渡された値は、ストアドプロシージャの内部ステートメントの名前フィールド値として使用され、有効フィールドと時間指定フィールドはYESに変更され、有効な機器の数が返されます(すでに有効な状態にある機器)。 ROW_COUNT()関数が戻り値として使用され、実際に変更された行のみが記録されるため、カウントされません)

  • 着信パラメータ文字列は、%in_pattern%;のような形式を使用して、setup_instrumentsテーブルの名前フィールドにあいまいに一致します。

パラメータ:

  • in_pattern VARCHAR(128):%in_pattern%のような形式を使用して、機器名の値を一致させます。setup_instrumentssテーブルの名前フィールドをあいまいに一致させてUPDATE操作を実行します。渡された値がnull値の場合、すべてに一致することに注意してください。楽器

保存されたプロシージャ定義ステートメントのテキスト

DROP PROCEDURE IF EXISTS ps_setup_enable_instrument;
DELIMITER $$
CREATE DEFINER='root'@'localhost' PROCEDURE ps_setup_enable_instrument (
    IN in_pattern VARCHAR(128)
)
COMMENT '
        Description
        -----------

        Enables instruments within Performance Schema 
        matching the input pattern.

        Parameters
        -----------

        in_pattern (VARCHAR(128)):
          A LIKE pattern match (using "%in_pattern%") of events to enable

        Example
        -----------

        To enable all mutex instruments:

        mysql> CALL sys.ps_setup_enable_instrument(\'wait/synch/mutex\');
        +-------------------------+
        | summary                |
        +-------------------------+
        | Enabled 155 instruments |
        +-------------------------+
        1 row in set (0.02 sec)

        Query OK, 0 rows affected (0.02 sec)

        To enable just a specific TCP/IP based network IO instrument:

        mysql> CALL sys.ps_setup_enable_instrument(\'wait/io/socket/sql/server_tcpip_socket\');
        +-----------------------+
        | summary              |
        +-----------------------+
        | Enabled 1 instruments |
        +-----------------------+
        1 row in set (0.00 sec)

        Query OK, 0 rows affected (0.00 sec)

        To enable all instruments:

        mysql> CALL sys.ps_setup_enable_instrument(\'\');
        +-------------------------+
        | summary                |
        +-------------------------+
        | Enabled 547 instruments |
        +-------------------------+
        1 row in set (0.01 sec)

        Query OK, 0 rows affected (0.01 sec)
        '
SQL SECURITY INVOKER
NOT DETERMINISTIC
MODIFIES SQL DATA
BEGIN
UPDATE performance_schema.setup_instruments
  SET enabled = 'YES', timed = 'YES'
WHERE name LIKE CONCAT('%', in_pattern, '%');

SELECT CONCAT('Enabled ', @rows := ROW_COUNT(), ' instrument', IF(@rows != 1, 's', '')) AS summary;
END$$
DELIMITER ;

08

ps_setup_enable_thread()

指定されたスレッドパフォーマンスイベント収集関数は、performance_schema.threadsテーブルを変更することで有効になります。呼び出し時に渡された値は、ストアドプロシージャの内部ステートメントのprocesslist_idフィールド値として使用されます。インストルメントフィールドはYESに変更され、パフォーマンスイベント収集関数が有効になっているスレッドの数( ROW_COUNT()関数が戻り値として使用され、実際に変更された行のみが記録されるため、すでに有効になっているスレッドはカウントされません)

パラメータ:

  • in_connection_id BIGINT:接続ID(プロセスID)。これは、performance_schema.theadsテーブルのPROCESSLIST_ID列またはSHOWPROCESSLISTによって出力されるid列の値です。

保存されたプロシージャ定義ステートメントのテキスト

DROP PROCEDURE IF EXISTS ps_setup_enable_thread;
DELIMITER $$
CREATE DEFINER='root'@'localhost' PROCEDURE ps_setup_enable_thread (
    IN in_connection_id BIGINT
)
COMMENT '
        Description
        -----------

        Enable the given connection/thread in Performance Schema.

        Parameters
        -----------

        in_connection_id (BIGINT):
          The connection ID (PROCESSLIST_ID from performance_schema.threads
          or the ID shown within SHOW PROCESSLIST)

        Example
        -----------

        mysql> CALL sys.ps_setup_enable_thread(3);
        +------------------+
        | summary          |
        +------------------+
        | Enabled 1 thread |
        +------------------+
        1 row in set (0.01 sec)

        To enable the current connection:

        mysql> CALL sys.ps_setup_enable_thread(CONNECTION_ID());
        +------------------+
        | summary          |
        +------------------+
        | Enabled 1 thread |
        +------------------+
        1 row in set (0.00 sec)
        '
SQL SECURITY INVOKER
NOT DETERMINISTIC
MODIFIES SQL DATA
BEGIN
UPDATE performance_schema.threads
  SET instrumented = 'YES'
WHERE processlist_id = in_connection_id;

SELECT CONCAT('Enabled ', @rows := ROW_COUNT(), ' thread', IF(@rows != 1, 's', '')) AS summary;
END$$
DELIMITER ;

09

ps_setup_reload_saved()

ストアドプロシージャが呼び出されると、ps_setup_save()ストアドプロシージャが呼び出されたときに一時テーブルに保存されたperformance_schema.threads、performance_schema.setup_consumers、performance_schema.setup_instruments、performance_schema.setup_actors構成情報が再ロードされます。ストアドプロシージャの呼び出しは、同じセッションに依存します。以前にps_setup_save()ストアドプロシージャを呼び出して作成した構成バックアップ一時テーブルで、ps_setup_save()ストアドプロシージャを以前に呼び出したことがない場合、ストアドプロシージャを実行できません。

  • このストアドプロシージャの実行にはSUPER権限が必要です。これは、実行中にsql_log_binシステム変数が変更され、バイナリロギング機能が無効になるためです。

mysql> CALL sys.ps_setup_save();
Query OK, 0 rows affected (0.08 sec)

mysql> UPDATE performance_schema.setup_instruments SET enabled = 'YES', timed = 'YES';
Query OK, 547 rows affected (0.40 sec)
Rows matched: 784 Changed: 547 Warnings: 0

/* Run some tests that need more detailed instrumentation here */

mysql> CALL sys.ps_setup_reload_saved();
Query OK, 0 rows affected (0.32 sec)

10

ps_setup_reset_to_default()

performance_schema構成をデフォルト値にリセットします。performance_schema.setup_actorsテーブルの場合は、直接空にして再挿入します(delete、INSERT IGNORE INTOステートメントを使用)。performance_schema.setup_instrumentsテーブルの場合は、sys.ps_is_instrument_default_enabled(NAME)関数とsys.ps_is_instrument_default_timed(NAME)関数にクエリを実行してreturn event_nameのデフォルト値は、(updateステートメントを使用して)構成テーブルを更新するために使用されます。performance_schema.setup_consumersテーブルでは、IF(NAME IN( `` xxx ''、...)、 `` YES ''、 `` NO '')を直接使用します。関数の戻り値は、(updateステートメントを使用して)構成テーブルを更新します。setup_objectsテーブルのdelete ... where not in( 'xxx' ...)は、デフォルトの構成行以外の構成行を削除してから、デフォルトの構成行のフィールド値に従います。これらのデフォルト構成行を再更新し(delete、INSERT IGNORE INTOステートメントを使用)、スレッドテーブルについて、すべてのスレッドのINSTRUMENTEDフィールドをYESに更新します(updateステートメントを使用)。

パラメータ:

  • in_verbose BOOLEAN:構成テーブルを更新するためのSQLステートメントの実行を含む、ストアドプロシージャの実行中に各構成テーブルの復元のステージ情報を表示するかどうか

mysql> CALL sys.ps_setup_reset_to_default(true)\G
*************************** 1. row ***************************
status: Resetting: setup_actors
DELETE
FROM performance_schema.setup_actors
WHERE NOT (HOST = '%' AND USER = '%' AND ROLE = '%')
1 row in set (0.00 sec)

*************************** 1. row ***************************
status: Resetting: setup_actors
INSERT IGNORE INTO performance_schema.setup_actors
...

mysql> CALL sys.ps_setup_reset_to_default(false)\G
Query OK, 0 rows affected (0.00 sec)

11

ps_setup_save()

performance_schemaの現在の構成テーブルを保存し、performance_schemaの下のthreads、setup_actors、setup_consumers、およびsetup_instrumentsテーブルと同じ構造の一時テーブルを作成し、insert ... select ...を使用して現在の構成データを一時テーブルにコピーします。 sql_log_binパラメーターをオフにして、操作がbinlogに書き込まれないようにします(SUPER権限が必要です)。操作後、デフォルト値に戻します。sys.ps_setup_reload_saved()ストアドプロシージャを呼び出して構成を復元します。sys.ps_setup_reload_saved()ストアドプロシージャについては、sysを参照してください。 ps_setup_reload_saved()説明部分

  • 他のセッションがストアドプロシージャを同時に呼び出して構成の保存操作を実行するのを防ぐために、sys.ps_setup_save()ストアドプロシージャは、GET_LOCK()関数を呼び出して、他のプロセスがsys.ps_setup_save()を実行しないようにすることで、「sys.ps_setup_save」という名前のアドバイザリロックを内部的に取得します。 )保存されたプロシージャ。sys.ps_setup_save()ストアドプロシージャは、「sys.ps_setup_save」という名前のアドバイザリロックのタイムアウト時間を取得するためにGET_LOCK()関数によって使用されるタイムアウトパラメータを受け入れます(「sys.ps_setup_save」という名前のアドバイザリロックがすでに存在する場合は、タイムアウトパラメータで指定された秒数を待ちます。タイムアウトパラメータで指定された秒数後に他のセッションがアドバイザリロックを解放しなかった場合、GET_LOCK()関数は0を返し、それ以外の場合は1を返します(関数はps_setup_save()ストアドプロシージャにキャプチャされます)。戻り値が判断された場合、構成を保存する操作は戻り値1で続行され、戻り値0の場合はエラーが報告されます:「sys.ps_setup_saveユーザーロックをロックできませんでした。別のスレッドに構成が保存されています」)

  • 構成はTEMPORARYテーブルに保存されるため、sys.ps_setup_reload_saved()ストアドプロシージャとsys.ps_setup_save()ストアドプロシージャは同じセッションで実行する必要があります。さらに、sys.ps_setup_save()ストアドプロシージャが実行されると、sysは呼び出されません。 ps_setup_reload_saved()ストアドプロシージャは構成を復元し、セッションを直接切断します。sys.ps_setup_save()ストアドプロシージャによって作成された一時テーブルと取得されたアドバイザリロックは自動的に削除されます。

パラメータ:

  • in_timeout INT:sys.ps_setup_saveロックの取得を待機するタイムアウト秒数、注:値が負の場合、無限の待機が発生します

mysql> CALL sys.ps_setup_save(1);
Query OK, 0 rows affected (0.08 sec)

mysql> UPDATE performance_schema.setup_instruments 
-> SET enabled = 'YES', timed = 'YES';
Query OK, 547 rows affected (0.40 sec)
Rows matched: 784 Changed: 547 Warnings: 0

/* Run some tests that need more detailed instrumentation here */

mysql> CALL sys.ps_setup_reload_saved();
Query OK, 0 rows affected (0.32 sec)

この号の内容はここで紹介されており、この号の参照リンクは次のとおりです。

  • https://dev.mysql.com/doc/refman/5.7/en/sys-ps-setup-save.html

  • https://dev.mysql.com/doc/refman/5.7/en/sys-ps-setup-disable-consumer.html

  • https://dev.mysql.com/doc/refman/5.7/en/sys-ps-setup-disable-instrument.html

  • https://dev.mysql.com/doc/refman/5.7/en/sys-ps-setup-disable-thread.html

  • https://dev.mysql.com/doc/refman/5.7/en/sys-ps-setup-enable-background-threads.html

  • https://dev.mysql.com/doc/refman/5.7/en/sys-ps-setup-enable-consumer.html

  • https://dev.mysql.com/doc/refman/5.7/en/sys-ps-setup-enable-instrument.html

  • https://dev.mysql.com/doc/refman/5.7/en/sys-ps-setup-enable-thread.html

  • https://dev.mysql.com/doc/refman/5.7/en/sys-ps-setup-reload-saved.html

  • https://dev.mysql.com/doc/refman/5.7/en/sys-ps-setup-reset-to-default.html

  • https://dev.mysql.com/doc/refman/5.7/en/sys-ps-setup-disable-background-threads.html

|作者について

LuoXiaobo・データベーステクノロジーエキスパート

「千の金のレシピ-MySQLパフォーマンス最適化ピラミッドルール」、「データエコロジー:MySQLレプリケーションテクノロジーとプロダクションプラクティス」の著者の1人。MySQLアーキテクチャに精通し、オープンソーステクノロジーに特化するなど、データベース全体のチューニングに精通し、オープンソーステクノロジーの推進に熱心であり、オンラインおよびオフラインで多くの公開データベーストピック共有を行い、100近くのデータベース関連の研究記事を公開しています。

全文は終わりました。

MySQLをお楽しみください:)

TeacherYeの「MySQLCoreOptimization」クラスがMySQL8.0にアップグレードされました。コードをスキャンして、MySQL8.0の練習の旅を始めてください。

おすすめ

転載: blog.csdn.net/n88Lpo/article/details/110411934