事件以生產者/消費者的方式處理
工具化程式碼是事件的來源,並產生要收集的事件。
setup_instruments
資料表列出可以收集事件的工具、它們是否已啟用,以及 (針對已啟用的工具) 是否收集計時資訊mysql> SELECT NAME, ENABLED, TIMED FROM performance_schema.setup_instruments; +---------------------------------------------------+---------+-------+ | NAME | ENABLED | TIMED | +---------------------------------------------------+---------+-------+ ... | wait/synch/mutex/sql/LOCK_global_read_lock | YES | YES | | wait/synch/mutex/sql/LOCK_global_system_variables | YES | YES | | wait/synch/mutex/sql/LOCK_lock_db | YES | YES | | wait/synch/mutex/sql/LOCK_manager | YES | YES | ...
setup_instruments
資料表提供對事件產生最基本的控制形式。若要根據所監控的物件或執行緒類型進一步精簡事件產生,可以使用其他資料表,如第 29.4.3 節 「事件預先篩選」中所述。Performance Schema 資料表是事件的目的地,並消耗事件。
setup_consumers
資料表列出可以傳送事件資訊的消費者類型,以及它們是否已啟用mysql> SELECT * FROM performance_schema.setup_consumers; +----------------------------------+---------+ | NAME | ENABLED | +----------------------------------+---------+ | events_stages_current | NO | | events_stages_history | NO | | events_stages_history_long | NO | | events_statements_cpu | NO | | events_statements_current | YES | | events_statements_history | YES | | events_statements_history_long | NO | | events_transactions_current | YES | | events_transactions_history | YES | | events_transactions_history_long | NO | | events_waits_current | NO | | events_waits_history | NO | | events_waits_history_long | NO | | global_instrumentation | YES | | thread_instrumentation | YES | | statements_digest | YES | +----------------------------------+---------+
可以在效能監控的不同階段進行篩選
預先篩選。 這可以透過修改 Performance Schema 配置來完成,以便僅從生產者收集特定類型的事件,並且收集的事件僅更新特定消費者。若要執行此操作,請啟用或停用工具或消費者。預先篩選由 Performance Schema 執行,並且具有適用於所有使用者的全域效果。
使用預先篩選的原因
降低額外負荷。即使啟用所有工具,Performance Schema 的額外負荷也應降至最低,但您可能想要進一步降低它。或者,您不關心計時事件,並且想要停用計時程式碼以消除計時額外負荷。
避免使用您不感興趣的事件填滿 current-events 或歷史資料表。預先篩選會在這些資料表中為已啟用的工具類型的列實例留下更多「空間」。如果您僅使用預先篩選啟用檔案工具,則不會收集非檔案工具的列。使用後篩選時,會收集非檔案事件,為檔案事件留下較少的列。
避免維護某些類型的事件資料表。如果您停用消費者,伺服器不會花時間維護該消費者的目的地。例如,如果您不關心事件歷史記錄,則可以停用歷史記錄資料表消費者以提高效能。
後篩選。 這涉及使用
WHERE
子句,這些子句會選取 Performance Schema 資料表的資訊,以指定您想要查看的可用事件。後篩選會以每個使用者的基礎執行,因為個別使用者會選取哪些可用的事件感興趣。使用後篩選的原因
避免為個別使用者就哪些事件資訊感興趣做出決策。
在事先不知道使用預先篩選所要實施的限制時,使用 Performance Schema 來調查效能問題。
以下章節會提供有關預先篩選的更多詳細資訊,並提供有關在篩選作業中命名工具或消費者的指導方針。如需有關撰寫查詢以擷取資訊 (後篩選) 的資訊,請參閱第 29.5 節 「Performance Schema 查詢」。