MySQL性能模式/性能模式乐器命名约定

第七章性能模式乐器命名约定

乐器的名字由一系列元素的分离' / '字符。示例名称:

等待/ io /文件/ myisam /日志等/ io /文件/ mysys /字符集等待/锁定/表/ sql /处理程序等待/同步/电导率/ mysys / COND_alarm等待/同步/电导率/ sql / BINLOG:: update_cond等待/同步/互斥/ mysys / BITMAP_mutex等待/同步/互斥/ sql / LOCK_delete等待/同步/ rwlock / sql / Query_cache_query::锁阶段/ sql /关闭表阶段/ sql /排序结果语句/com/Query /com/Execute声明语句/ sql / create_table声明/ sql / lock_tables错误

仪器名称空间有一个树状结构。乐器的名字从左到右的元素提供一个从一般到具体进展。元素名称的数量取决于仪器的类型。

给定的元素名称的解释取决于它左边的元素。例如,myisam出现在以下两个的名字,但是myisam在第一个叫相关文件I / O,而在第二个同步相关仪器:

等待/ io /文件/ myisam /日志等/同步/电导率/ myisam / MI_SORT_INFO::电导率

仪器名称由定义的前缀与结构性能模式实现和开发人员实现仪器代码定义的一个后缀。乐器的顶级元素前缀表明仪器的类型。这个元素也决定了哪些事件计时器performance_timers表适用于仪器。的前缀部分仪器名称、顶层显示仪表的类型。

仪器名称的后缀部分来自于仪器本身的代码。后缀可以包括这样的水平:

  • 主要元素的名称(如服务器模块myisam,innodb,mysys,或sql)或一个插件名称。

  • 在代码中变量的名称,在表单中XXX(全局变量)或CCC::(一个成员在课堂上CCC)。例子:COND_thread_cache,THR_LOCK_myisam,BINLOG: LOCK_index

顶级乐器元素

  • 闲置:一个仪器的闲置的事件。这台仪器没有进一步的元素。

  • 错误:一个检测错误事件。这台仪器没有进一步的元素。

  • 内存事件:一个检测内存。

  • 阶段事件:一个测试阶段。

  • 声明:一个测试语句事件。

  • 事务:一个仪器的交易活动。这台仪器没有进一步的元素。

  • 等待:一个检测等事件。

闲置仪器元素

闲置仪器用于空闲事件,讨论的性能模式生成的描述socket_instances.STATE部分10.3.5,“socket_instances表”

仪器误差元素

错误仪表指示是否收集信息服务器错误和警告。这个乐器是默认启用。的定时列的错误setup_instruments表是不适用的,因为时间不是收集信息。

内存仪器元素

内存仪器默认情况下是启用的。内存仪器可以在启动时启用或禁用,或在运行时动态地更新启用列的相关仪器setup_instruments表。内存工具表单的名称内存/code_area/instrument_name在哪里code_area是一个价值等sqlmyisam,instrument_name是仪器的细节。

仪器与前缀命名内存/ performance_schema /公开的内部缓冲区分配多少内存性能模式。的内存/ performance_schema /仪器是建立在,总是启用,不能在启动或运行时禁用。内置内存工具只有在显示memory_summary_global_by_event_name表。有关更多信息,请参见性能模式描述模型

阶段乐器元素

阶段工具表单的名称阶段/code_area/stage_name,在那里code_area是一个价值等sqlmyisam,stage_name表示语句处理的阶段,如排序结果发送数据。阶段对应的线程状态显示显示PROCESSLIST或者是可见的INFORMATION_SCHEMA.PROCESSLIST表。

声明乐器元素

  • 声明抽象/ * /:声明一个抽象的仪器操作。抽象工具在使用之前声明的早期阶段分类的语句类型,然后更改为一个更具体的语句仪器当类型是已知的。这个过程的描述,请参阅10.6节,“性能模式语句事件表”

  • 声明/ com:一个测试命令操作。这些名称对应COM_xxx操作(见mysql_com.h头文件和sql / sql_parse.cc。例如,声明/com/Connect声明/com/Init DB仪器对应COM_CONNECTCOM_INIT_DB命令。

  • 声明/调度器/事件:一个工具来跟踪所有事件执行的事件调度器。这台仪器进场计划事件时开始执行。

  • 声明/ sp:一个仪器的内部存储程序指令执行。例如,声明/ sp / cfetch声明/ sp / freturn仪器使用游标获取和函数返回指令。

  • 声明/ sqlSQL语句:一个仪器的操作。例如,声明/ sql / create_db声明/ sql /选择工具用于创建数据库选择语句。

线程乐器元素

是显示在仪器的线程setup_threads表,这暴露了线程类名和属性。

线程工具开始线程(例如,线程/ sql / parser_service线程/ performance_schema /设置)。

等待仪器元素

  • 等待/ io

    一个检测I / O操作。

    • 等待io /文件

      一个测试文件I / O操作。的文件,等待等待文件操作完成的时间(例如,调用写入文件())。由于缓存,磁盘上的物理文件I / O可能不会发生在这个调用。

    • 等待/ io /套接字

      一个仪器的套接字操作。套接字工具表单的名称等待/ io /套筒/ sql /socket_type。每个网络协议的服务器有一个监听套接字,它支持。与听力相关的仪器为TCP / IP套接字或Unix文件连接有一个套接字socket_type的价值server_tcpip_socketserver_unix_socket,分别。当一个监听套接字检测到连接,服务器转移到新的套接字的连接由一个单独的线程管理。新连接的线程的仪器socket_type的价值client_connection

    • 等待/ io /表

      一个检测表I / O操作。这些包括行级访问持久基表或临时表。操作影响行取回,插入、更新和删除。视图,等待与基表引用的视图。

      与大多数等待,表I / O等待可以包括其他的等待。例如,表I / O可能包括文件I / O或者内存操作。因此,events_waits_current表的I / O等待通常有两行。有关更多信息,请参见性能模式原子和分子事件

      一些行操作可能会导致多个表I / O等待。例如,插入可能导致一个更新激活触发器。

  • 等待/锁

    一个检测锁操作。

    • 等待/锁定/表

      一个检测表锁操作。

    • 等待/锁定/ / sql / mdl元数据

      一个测试元数据锁操作。

  • 等待/同步

    一个仪器的同步对象。同步对象的TIMER_WAIT包括阻塞的时间而试图收购对象上的锁,如果任何。

    • 等待/同步/电导率

      一个线程使用一个条件信号,其他线程,他们正在等待事情发生了。如果一个线程等待某个条件,它可以醒来,继续执行。如果多个线程等待,他们都能醒来,他们等待争夺的资源。

    • 等待/同步/互斥

      使用互斥对象允许访问的资源(例如一段可执行代码),而阻止其他线程访问资源。

    • 等待/同步/ prlock

      优先考虑rwlock锁对象。

    • 等待/同步/ rwlock

      一个普通的读/写锁对象用于锁定一个特定的变量的访问,同时防止其被其他线程使用。一个共享读锁由多个线程可以同时获得。可以获得独家写锁一次只有一个线程。

    • 等待/同步/ sxlock

      shared-exclusive (SX)锁是一种rwlock锁对象提供写访问公共资源,同时允许其他线程读取不一致。sxlocks为读写工作负载优化并发性和提高可伸缩性。