事件以生產者/消費者的方式處理
檢測的程式碼是事件的來源,並產生要收集的事件。
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 額外負荷也應降到最低,但您可能想要進一步減少它。或者,您不關心計時事件,並想要停用計時程式碼以消除計時額外負荷。
避免在您不感興趣的事件中填滿目前事件或歷史表格。預先篩選會在這些表格中為已啟用儀器類型的列執行個體留下更多「空間」。如果您只啟用具有預先篩選的檔案儀器,則不會收集非檔案儀器的列。使用後篩選,將會收集非檔案事件,為檔案事件留下較少的列。
為了避免維護某些類型的事件表格。如果您停用某個消費者,伺服器就不會花時間維護該消費者的目標。例如,如果您不關心事件歷史記錄,您可以停用歷史記錄表格消費者以提高效能。
後置篩選。 這涉及在查詢中使用
WHERE
子句,從效能結構描述表格中選擇資訊,以指定您想要查看哪些可用的事件。後置篩選是針對每個使用者執行的,因為個別使用者會選擇他們感興趣的可用事件。使用後置篩選的原因
避免為個別使用者決定哪些事件資訊是他們感興趣的。
在事先不知道使用預先篩選要施加哪些限制時,使用效能結構描述來調查效能問題。
以下章節將提供有關預先篩選的更多詳細資訊,並提供在篩選操作中命名儀器或消費者的指南。有關編寫查詢以檢索資訊(後置篩選)的資訊,請參閱第 29.5 節,「效能結構描述查詢」。