• 首页
  • vue
  • TypeScript
  • JavaScript
  • scss
  • css3
  • html5
  • php
  • MySQL
  • redis
  • jQuery
  • 交易摘要表

    性能架构维护用于收集当前和最近事务事件的表,并将该信息汇总到摘要表中。“性能架构事务表”描述了事务摘要所基于的事件。请参阅该讨论以获取有关事务事件的内容,当前和历史事务事件表以及如何控制事务事件收集(默认情况下已禁用)的信息。

    示例交易事件摘要信息:

    mysql> SELECT *
           FROM performance_schema.events_transactions_summary_global_by_event_name
           LIMIT 1\G
    *************************** 1. row***************************
              EVENT_NAME: transaction
              COUNT_STAR: 5
          SUM_TIMER_WAIT: 19550092000
          MIN_TIMER_WAIT: 2954148000
          AVG_TIMER_WAIT: 3910018000
          MAX_TIMER_WAIT: 5486275000
        COUNT_READ_WRITE: 5
    SUM_TIMER_READ_WRITE: 19550092000
    MIN_TIMER_READ_WRITE: 2954148000
    AVG_TIMER_READ_WRITE: 3910018000
    MAX_TIMER_READ_WRITE: 5486275000
         COUNT_READ_ONLY: 0
     SUM_TIMER_READ_ONLY: 0
     MIN_TIMER_READ_ONLY: 0
     AVG_TIMER_READ_ONLY: 0
     MAX_TIMER_READ_ONLY: 0
    

    每个交易摘要表都有一个或多个分组列,以指示该表如何聚合事件。事件名称是指setup_instruments表中事件工具的名称:

    • events_transactions_summary_by_account_by_event_nameUSERHOSTEVENT_NAME列。每行总结了给定帐户(用户和主机组合)的事件和事件名称。
    • events_transactions_summary_by_host_by_event_nameHOSTEVENT_NAME列。每行总结了给定主机和事件名称的事件。
    • events_transactions_summary_by_thread_by_event_nameTHREAD_IDEVENT_NAME列。每行总结了给定线程和事件名称的事件。
    • events_transactions_summary_by_user_by_event_nameUSEREVENT_NAME列。每行总结了给定用户和事件名称的事件。
    • events_transactions_summary_global_by_event_nameEVENT_NAME专栏。每行总结了给定事件名称的事件。

    每个交易摘要表的以下摘要列均包含汇总值:

    • COUNT_STARSUM_TIMER_WAITMIN_TIMER_WAITAVG_TIMER_WAITMAX_TIMER_WAIT

      这些列类似于等待事件摘要表中的相同名称的列(请参见“等待事件摘要表”),不同之处在于事务摘要表汇总了events_transactions_current而不是的事件events_waits_current。这些列概述了读写和只读事务。

    • COUNT_READ_WRITESUM_TIMER_READ_WRITEMIN_TIMER_READ_WRITEAVG_TIMER_READ_WRITEMAX_TIMER_READ_WRITE

      这些与COUNT_STARxxx_TIMER_WAIT列相似,但仅汇总了读写事务。事务访问模式指定事务是以读/写还是只读模式运行。

    • COUNT_READ_ONLYSUM_TIMER_READ_ONLYMIN_TIMER_READ_ONLYAVG_TIMER_READ_ONLYMAX_TIMER_READ_ONLY

      这些与COUNT_STARxxx_TIMER_WAIT列相似,但仅汇总只读事务。事务访问模式指定事务是以读/写还是只读模式运行。

    事务摘要表具有以下索引:

    • events_transactions_summary_by_account_by_event_name

      • 在主键(USERHOSTEVENT_NAME
    • events_transactions_summary_by_host_by_event_name

      • HOSTEVENT_NAME)上的主键
    • events_transactions_summary_by_thread_by_event_name

      • THREAD_IDEVENT_NAME)上的主键
    • events_transactions_summary_by_user_by_event_name

      • USEREVENT_NAME)上的主键
    • events_transactions_summary_global_by_event_name

      • EVENT_NAME)上的主键

    TRUNCATE TABLE允许用于交易摘要表。它具有以下效果:

    • 对于未按帐户,主机或用户聚合的摘要表,截断会将摘要列重置为零,而不是删除行。
    • 对于按帐户,主机或用户聚合的摘要表,截断将删除无连接的帐户,主机或用户的行,并将其余行的摘要列重置为零。

    另外,通过帐户,主机,用户或线程聚合的每个事务摘要表都将通过其所依赖的连接表的截断或的截断而隐式地截断events_transactions_summary_global_by_event_name。有关详细信息,请参见“性能架构连接表”。

    交易汇总规则

    事务事件收集的发生与隔离级别,访问模式或自动提交模式无关。

    事务事件收集发生在服务器发起的所有非中止的事务中,包括空事务。

    读写事务通常比只读事务更加占用资源,因此事务摘要表包括用于读写事务和只读事务的单独的聚合列。

    资源需求也可能随事务隔离级别而变化。但是,假设每个服务器仅使用一个隔离级别,则不提供按隔离级别的聚合。