mysql中高阶玩法系列(六)
目录
- 系统默认数据库
- 巨人的肩膀
- VChat
系统默认数据库
数据其实可以存储在⽂本⽂件中,但是只适⽤于数据量很少的时候,数据量很少的情况下,在⽂件中保存数据、读写数据,操作简单便利且速度快;但是当数据量稍微⼤的情况,普通⽂本⽂件保存数据的⽅式就显得捉襟⻅肘,甚⾄束⼿⽆策。⽐如数据结构、数据类型⽆法设计,数据读写⽅式复杂且速度慢,对于复杂的数据查询更是⽆法做到。所以需要专业的数据库软件;
存储数据也可以使⽤微软的 Excel,但是,随着数据越来越多,在 Excel这样的电⼦表格⾥查找数据就变得很慢,⽽且不可靠。所以需要更⾼效的数据库管理软件。
在安装MySQL时系统会⾃动创建⼏个数据库,
information_schema
通过information_schema我们可以窥透整个MySQL实例的运行情况,可以了结MySQL实例的基本信息,甚至优化调优,维护数据库等
该数据库中的表都是只读的,不能进行更新、删除和插入等操作,也不能加载触发器,因为它们实际只是一个视图,不是基本表,没有关联的文件。
主要存储了 Mysql 服务器所有数据库的信息,如数据库名,数据库的表,表栏的数据类型与访问权限,字符集信息、分区信息等
information_schema 数据库的数据表
+---------------------------------------+---------------------------------------+ | Tables_in_information_schema | 介绍 +---------------------------------------+---------------------------------------+ | CHARACTER_SETS |存储数据库相关字符集信息 | COLLATIONS |字符集对应的排序规则 | COLLATION_CHARACTER_SET_APPLICABILITY |指明了可用于校对的字符集,这些列等效于SHOW COLLATION的前两个显示字段。 | COLUMNS |该数据表存储了mysql数据库中的所有列的列名以及每个列的信息,所有的存储引擎 | COLUMN_PRIVILEGES |列权限 | ENGINES |引擎类型 | EVENTS |记录MySQL中的事件,类似于定时作业 | FILES |有关在MySQL的表空间中的数据存储的文件的信息,文件存储的位置,这个表的数据是从InnoDB in-memory中拉取出来的,所以说这张表本身也是一个内存表,每次重启重新进行拉取 | GLOBAL_STATUS |系统的状态 | GLOBAL_VARIABLES |系统的变量 | KEY_COLUMN_USAGE |描述了具有约束的键列。 | OPTIMIZER_TRACE |提供的是优化跟踪功能产生的信息 | PARAMETERS |存储了一些存储过程和方法的参数,以及存储过程的返回值信息 | PARTITIONS |MySQL分区表相关的信息,通过这张表我们可以查询到分区的相关信息(数据库中已分区的表,以及分区表的分区和每个分区的数据信息) | PLUGINS |基本上是MySQL的插件信息,是否是活动状态等信息 | PROCESSLIST |存储了当前连接信息 | PROFILING |可以深入的查看服务器执行语句的工作情况。以及也能帮助理解执行语句消耗时间的情况。局限是不能查看和剖析其他连接的语句,以及剖析时所引起的消耗 | REFERENTIAL_CONSTRAINTS |外键相关的信息 | ROUTINES |关于存储过程和方法function的一些信息,不过这个信息是不包括用户自定义的,只是系统的一些信息 | SCHEMATA |该数据表存储了mysql数据库中的所有数据库的库名 | SCHEMA_PRIVILEGES |数据库权限 | SESSION_STATUS |会话的信息 | SESSION_VARIABLES |会话的变量 | STATISTICS |提供了关于表索引的信息 | TABLES |该数据表存储了mysql数据库中的所有数据表的表名(其中字段 TABLE_SCHEMA:记录数据库名;TABLE_NAME:记录数据表名;TABLE_ROWS:记录表中粗略的行数;DATA_LENGTH:记录表的大小以字节为单位) | TABLESPACES |标注的活跃表空间 | TABLE_CONSTRAINTS |描述了存在约束的表,以及表的约束类型。 | TABLE_PRIVILEGES |表权限 | TRIGGERS |记录触发器的信息,包括所有的相关的信息 | USER_PRIVILEGES |用户权限,关于全程权限的信息 | VIEWS |给出了关于数据库中的视图的信息 | INNODB_LOCKS |现在获取的锁,但是不含没有获取的锁,而且只是针对INNODB的 | INNODB_TRX |包含了所有正在执行的的事物相关信息(INNODB),而且包含了事物是否被阻塞或者请求锁 | INNODB_SYS_DATAFILES |记录的表的文件存储的位置和表空间的一个对应关系(INNODB) | INNODB_FT_CONFIG |存的是全文索引的信息 | INNODB_SYS_VIRTUAL |存储的是INNODB表的虚拟列的信息 | INNODB_CMP |存储的是关于压缩INNODB信息表的时候的相关信息 | INNODB_FT_BEING_DELETED |该表仅在OPTIMIZE TABLE语句执行维护操作期间作为INNODB_FT_DELETED表的快照数据存放使用。运行OPTIMIZE TABLE语句时,会先清空INNODB_FT_BEING_DELETED表中的数据,保存INNODB_FT_DELETED表中的快照数据到INNODB_FT_BEING_DELETED表,并从INNODB_FT_DELETED表中删除DOC_ID。由于INNODB_FT_BEING_DELETED表中的内容通常生命周期较短,因此该表中的数据对于监控或者调试来说用处并不大 | INNODB_CMP_RESET |同 INNODB_CMP,但是每次查询之后会清空数据 | INNODB_CMP_PER_INDEX |关于压缩INNODB信息表 | INNODB_CMPMEM_RESET |同 INNODB_CMPEM,但是每次查询这个表会清空 RELOCATION_TIME 字段的值 | INNODB_FT_DELETED |包含了从全文索引中已经删除的行,这些信息用于过滤查询请求的结果,解决每次删除一行时昂贵的重新组织索引操作 | INNODB_BUFFER_PAGE_LRU |有关缓冲池中页的信息,以及出于清除目的如何对页进行排序 | INNODB_LOCK_WAITS |系统锁等待相关信息,包含了阻塞的一行或者多行的记录,而且还有锁请求和被阻塞改请求的锁信息等 | INNODB_TEMP_TABLE_INFO |记录所有的INNODB的所有用户使用到的信息,但是只能记录在内存中和没有持久化的信息 | INNODB_SYS_INDEXES |相关INNODB表的索引的相关信息 | INNODB_SYS_TABLES |提供了有关表格的格式和存储特性,包括行格式,压缩页面大小位级别的信息 | INNODB_SYS_FIELDS |记录的是INNODB的表索引字段信息,以及字段的排名 | INNODB_CMP_PER_INDEX_RESET |于压缩INNODB索引信息 | INNODB_BUFFER_PAGE |存的是buffer里面缓冲的页数据。查询这个表会对性能产生很严重的影响 | INNODB_FT_DEFAULT_STOPWORD |包含了用于创建全文索引的停止词列表 | INNODB_FT_INDEX_TABLE |存储的是关于INNODB表有全文索引的索引使用信息的 | INNODB_FT_INDEX_CACHE |存放的是插入前的记录信息,也是为了避免DML时候昂贵的索引重组 | INNODB_SYS_TABLESPACES |关于INNODB的表空间信息 | INNODB_METRICS |提供INNODB的各种的性能指数 | INNODB_SYS_FOREIGN_COLS |存储的INNODB关于外键的元数据信息 | INNODB_CMPMEM |MySQL INNODB的压缩页的buffer pool信息,由于用来收集的时候是会对性能造成严重的影响的,所以说默认是关闭状态的 | INNODB_BUFFER_POOL_STATS |有关INNODB 的buffer pool相关信息 | INNODB_SYS_COLUMNS |存放的是INNODB的元数据 | INNODB_SYS_FOREIGN |存储的INNODB关于外键的元数据信息 | INNODB_SYS_TABLESTATS |记录的是MySQL的INNODB表信息以MySQL优化器会预估SQL选择合适的索引信息,其实就是MySQL数据库的统计信息这个表的记录是记录在内存当中的,是一个内存表,每次重启后就会重新记录,所以只能记录从上次重启后的数据库统计信息。有了这个表,对于索引的维护就更加方便了,可以查询索引的使用次数,方便清理删除不常用的索引,提高表的更新插入等效率,节省磁盘空间。 +---------------------------------------+---------------------------------------+
mysql
存储了系统的用户、权限设置、关键字信息
+---------------------------+---------------------------+
| Tables_in_mysql |
+---------------------------+---------------------------+
| columns_priv |列级权限表
| db |数据库级别的权限表
| engine_cost |针对特定存储引擎的操作需要使用到的的优化器成本估算常量值
| event |提供查询计划任务相关的事件信息
| func |主要用于记录用户自定义函数
| general_log |提供查询普通SQL语句的执行记录信息,用于查找客户端到底在服务端上执行了什么SQL
| gtid_executed |查询与当前实例中的数据一致的GTID集合
| help_category |提供查询帮助类别信息
| help_keyword |查询与帮助主题相关的字符串信息
| help_relation |查询帮助关键字信息和主题信息之间的映射,用于关联查询help_keyword与help_topic表
| help_topic |提供查询帮助主题的详细内容(详细帮助信息)
| innodb_index_stats |提供查询索引相关的统计信息
| innodb_table_stats |提供查询表数据相关的统计信息
| ndb_binlog_index |提供查询ndb集群引擎相关的统计信息
| plugin |提供查询自定义安装的插件信息(非系统默认启用的插件)
| proc |记录存储过程
| procs_priv |存储过程和函数权限表
| proxies_priv |代理用户权限表
| server_cost |server常规操作需要使用到的优化器成本估算常量值
| servers |提供查询连接组合信息(远程实例的IP、端口、帐号、密码、数据库名称等信息,详见后续示例),这些连接组合信息通常用于federated引擎(当然也可以作为在数据库中保存连接组合的一种方式,维护也较为方便)
| slave_master_info |提供查询IO线程读取主库的位置信息,以及从库连接主库的IP、账号、端口、密码等信息
| slave_relay_log_info |提供查询SQL线程重放的二进制文件对应的主库位置和relay log当前最新的位置
| slave_worker_info |提供查询多线程复制时的worker线程状态信息
| slow_log |提供查询执行时间超过long_query_time设置值的SQL,或者未使用索引的
| tables_priv |表级别的权限表
| time_zone |提供查询时区ID和跳秒之间的映射关系数据
| time_zone_leap_second |提供查询跳秒机器修正值信息
| time_zone_name |提供查询时区的名称列表和时区ID的映射关系
| time_zone_transition |提供查询时区的跳秒数据
| time_zone_transition_type |提供查询具体的跳秒信息以及与时区的对应数据
| user |包含用户帐户和全局权限和其他非权限列表(安全配置选项和资源控制选项列)
+---------------------------+---------------------------+
31 rows in set (0.00 sec)
sys
所有的数据源来自:performance_schema。目标是把performance_schema的把复杂度降低,让DBA能更好的阅读这个库里的内容。让DBA更快的了解DB的运行情况。
字母开头: 适合人阅读,显示是格式化的数
x$开头 : 适合工具采集数据,原始类数据
+-----------------------------------------------+-----------------------------------------------+
| Tables_in_sys |介绍
+-----------------------------------------------+-----------------------------------------------+
| host_summary |按照主机分组统计的语句延迟(执行)时间、次数、相关的文件I/O延迟、连接数和内存分配大小等摘要信息
| host_summary_by_file_io |按主机分组统计的文件I/O的IO总数和IO延迟时间,默认按照总I/O等待时间降序排序
| host_summary_by_file_io_type |汇总了文件I/O,按主机和事件类型分组。默认情况下,行按主机和总I/O延迟降序排列
| host_summary_by_stages |按照主机和事件名称分组的阶段事件总次数、总执行时间、平均执行时间等统计信息,默认按照主机和总的延迟(执行)时间降序排序
| host_summary_by_statement_latency |按照主机和事件名称分组的语句事件总次数、总执行时间、最大执行时间、锁时间以及数据行相关的统计信息,默认按照总延迟(执行)时间降序排序
| host_summary_by_statement_type |按照主机和语句分组的当前语句事件总次数、总执行时间、最大执行时间、锁时间以及数据行相关的统计信息
| innodb_buffer_stats_by_schema |按照schema分组的 InnoDB缓冲区统计信息
| innodb_buffer_stats_by_table |按照schema和表分组的 InnoDB缓冲区统计信息
| innodb_lock_waits |查询事务锁等待信息,可用于行锁的排查
| io_by_thread_by_latency |按照thread ID、processlist ID、用户名分组的 I/O等待时间开销统计信息,默认情况下按照总I/O等待时间降序排序
| io_global_by_file_by_bytes |按照文件路径+名称分组的全局I/O读写字节数、读写文件I/O事件数量进行统计,默认情况下按照总I/O(读写字节数)进行降序排序
| io_global_by_file_by_latency |按照文件路径+名称分组的全局I/O事件的时间开销统计信息,默认情况下按照文件总的I/O等待时间(读和写的I/O等待时间)进行降序排序
| io_global_by_wait_by_bytes |按照文件IO事件名称后缀进行分组的统计信息,默认情况下按照总I/O读写总字节数进行降序排序
| io_global_by_wait_by_latency |按照事件名称后缀字符串分组、IO延迟时间排序的全局I/O等待时间统计信息
| latest_file_io |按照文件名称和线程名称分组、文件IO操作开始起始排序的最新的已经执行完成的I/O等待事件信息
| memory_by_host_by_current_bytes |内存使用情况(按主机分组)。默认情况下,行按使用的内存量降序排序
| memory_by_thread_by_current_bytes |内存使用情况(按线程分组)。默认情况下,行按使用的内存量降序排序
| memory_by_user_by_current_bytes |按用户分组的内存使用情况。默认情况下,行按使用的内存量降序排序
| memory_global_by_current_bytes |内存使用情况,并按分配类型(即按事件)分组。默认情况下,行按使用的内存量降序排序
| memory_global_total |服务器内的总内存使用情况
| metrics |MySQL服务器指标,以显示变量名称,值,类型以及是否启用它们。默认情况下,行按变量类型和名称排序
| processlist |流程列表信息。它们提供了比SHOW PROCESSLIST语句和 INFORMATION_SCHEMA PROCESSLIST表更完整的信息,并且是非阻塞的。默认情况下,行按降序处理时间和降序等待时间排序
| ps_check_lost_instrumentation |有关丢失的性能架构工具的信息,以指示性能架构是否无法监视所有运行时数据
| schema_auto_increment_columns |指示哪些表具有 AUTO_INCREMENT列,并提供有关这些列的信息,例如当前和最大列值以及使用率(已用值与可能值的比率)。默认情况下,行按使用率和最大列值的降序排序
| schema_index_statistics |提供索引统计信息。默认情况下,行按总索引延迟降序排序
| schema_object_overview |每个模式中的对象类型。默认情况下,行按架构和对象类型排序
| schema_redundant_indexes |视图显示与其他索引重复的索引,或者由它们冗余的索引
| schema_table_lock_waits |查询表锁等待信息
| schema_table_statistics |汇总表统计信息。默认情况下,行按总等待时间降序排序
| schema_table_statistics_with_buffer |汇总了表统计信息,包括 InnoDB缓冲池统计信息。默认情况下,行按总等待时间降序排序
| schema_tables_with_full_table_scans |显示通过全表扫描正在访问的表。默认情况下,行按扫描的降序排列
| schema_unused_indexes |查看数据库的未使用到的索引
| session |查看用户线程详细的状态信息
| session_ssl_status |对于每个连接,此视图显示SSL版本,密码和重用的SSL会话计数
| statement_analysis |汇总统计信息的规范化语句
| statements_with_errors_or_warnings |显示产生错误或警告的规范化语句。默认情况下,行按递减的错误和警告计数排序
| statements_with_full_table_scans |显示已完成全表扫描的规范化语句。默认情况下,行是按完整扫描的时间百分比递减和总延迟时间递减排序的
| statements_with_runtimes_in_95th_percentile |列出了运行时处于第95个百分点的语句。默认情况下,行按平均等待时间降序排序
| statements_with_sorting |已执行排序的规范化语句。默认情况下,行按总等待时间降序排序
| statements_with_temp_tables |使用临时表的规范化语句。默认情况下,行按使用的磁盘临时表的降序排列和使用的内存中临时表的降序排列
| sys_config |sys 模式配置选项
| user_summary |汇总了按用户分组的语句活动,文件I / O和连接。默认情况下,行按总等待时间降序排序
| user_summary_by_file_io |汇总了按用户分组的文件I / O。默认情况下,行按总文件I / O延迟降序排序
| user_summary_by_file_io_type |汇总了按用户和事件类型分组的文件I / O。默认情况下,行按用户和总等待时间降序排序
| user_summary_by_stages |总结了按用户分组的阶段。默认情况下,行按用户和总阶段延迟降序排序
| user_summary_by_statement_latency |汇总了按用户分组的总体语句统计信息。默认情况下,行按总等待时间降序排序
| user_summary_by_statement_type |总结了有关已执行语句的信息,并按用户和语句类型分组。默认情况下,行按用户和总等待时间降序排序
| version |当前sys模式和MySQL服务器版本
| wait_classes_global_by_avg_latency |汇总了按事件类分组的等待类平均等待时间。默认情况下,行按平均等待时间降序排序。空闲事件将被忽略
| wait_classes_global_by_latency |汇总了按事件类分组的等待类总延迟。默认情况下,行按总等待时间降序排序。空闲事件将被忽略
| waits_by_host_by_latency |总了按主机和事件分组的等待事件。默认情况下,行按主机和总等待时间降序排序。空闲事件将被忽略
| waits_by_user_by_latency |汇总了按用户和事件分组的等待事件。默认情况下,行按用户和总等待时间降序排序。空闲事件将被忽略
| waits_global_by_latency |汇总了按事件分组的等待事件。默认情况下,行按总等待时间降序排序。空闲事件将被忽略
| x$host_summary |按照主机分组统计的语句延迟(执行)时间、次数、相关的文件I/O延迟、连接数和内存分配大小等摘要信息
| x$host_summary_by_file_io |按主机分组统计的文件I/O的IO总数和IO延迟时间,默认按照总I/O等待时间降序排序
| x$host_summary_by_file_io_type |汇总了文件I/O,按主机和事件类型分组。默认情况下,行按主机和总I/O延迟降序排列
| x$host_summary_by_stages |按照主机和事件名称分组的阶段事件总次数、总执行时间、平均执行时间等统计信息,默认按照主机和总的延迟(执行)时间降序排序
| x$host_summary_by_statement_latency |按照主机和事件名称分组的语句事件总次数、总执行时间、最大执行时间、锁时间以及数据行相关的统计信息,默认按照总延迟(执行)时间降序排序
| x$host_summary_by_statement_type |按照主机和语句分组的当前语句事件总次数、总执行时间、最大执行时间、锁时间以及数据行相关的统计信息
| x$innodb_buffer_stats_by_schema |按照schema分组的 InnoDB缓冲区统计信息
| x$innodb_buffer_stats_by_table |按照schema和表分组的 InnoDB缓冲区统计信息
| x$innodb_lock_waits |查询事务锁等待信息,可用于行锁的排查
| x$io_by_thread_by_latency |按照thread ID、processlist ID、用户名分组的 I/O等待时间开销统计信息,默认情况下按照总I/O等待时间降序排序
| x$io_global_by_file_by_bytes |按照文件路径+名称分组的全局I/O读写字节数、读写文件I/O事件数量进行统计,默认情况下按照总I/O(读写字节数)进行降序排序
| x$io_global_by_file_by_latency |按照文件路径+名称分组的全局I/O事件的时间开销统计信息,默认情况下按照文件总的I/O等待时间(读和写的I/O等待时间)进行降序排序
| x$io_global_by_wait_by_bytes |按照文件IO事件名称后缀进行分组的统计信息,默认情况下按照总I/O读写总字节数进行降序排序
| x$io_global_by_wait_by_latency |按照事件名称后缀字符串分组、IO延迟时间排序的全局I/O等待时间统计信息
| x$latest_file_io |按照文件名称和线程名称分组、文件IO操作开始起始排序的最新的已经执行完成的I/O等待事件信息
| x$memory_by_host_by_current_bytes |内存使用情况(按主机分组)。默认情况下,行按使用的内存量降序排序
| x$memory_by_thread_by_current_bytes |内存使用情况(按线程分组)。默认情况下,行按使用的内存量降序排序
| x$memory_by_user_by_current_bytes |按用户分组的内存使用情况。默认情况下,行按使用的内存量降序排序
| x$memory_global_by_current_bytes |内存使用情况,并按分配类型(即按事件)分组。默认情况下,行按使用的内存量降序排序
| x$memory_global_total |服务器内的总内存使用情况
| x$processlist |流程列表信息。它们提供了比SHOW PROCESSLIST语句和 INFORMATION_SCHEMA PROCESSLIST表更完整的信息,并且是非阻塞的。默认情况下,行按降序处理时间和降序等待时间排序
| x$ps_digest_95th_percentile_by_avg_us |计算语句百分之九十五的平均执行时间分布值,帮助statements_with_runtimes_in_95th_percentile视图输出语句平均执行时间大于95%平均分布值的语句统计信息,默认按照直方图百分比值排序
| x$ps_digest_avg_latency_distribution |用于帮助$ps_digest_95th_percentile_by_avg_us视图生成语句百分之九十五的平均执行时间分布值
| x$ps_schema_table_statistics_io |统计视图生成表统计信息
| x$schema_flattened_keys |输出冗余索引信息
| x$schema_index_statistics |提供索引统计信息。默认情况下,行按总索引延迟降序排序
| x$schema_table_lock_waits |查询表锁等待信息
| x$schema_table_statistics |汇总表统计信息。默认情况下,行按总等待时间降序排序
| x$schema_table_statistics_with_buffer |汇总了表统计信息,包括 InnoDB缓冲池统计信息。默认情况下,行按总等待时间降序排序
| x$schema_tables_with_full_table_scans |显示通过全表扫描正在访问的表。默认情况下,行按扫描的降序排列
| x$session |查看用户线程详细的状态信息
| x$statement_analysis |汇总统计信息的规范化语句
| x$statements_with_errors_or_warnings |显示产生错误或警告的规范化语句。默认情况下,行按递减的错误和警告计数排序
| x$statements_with_full_table_scans |显示已完成全表扫描的规范化语句。默认情况下,行是按完整扫描的时间百分比递减和总延迟时间递减排序的
| x$statements_with_runtimes_in_95th_percentile |列出了运行时处于第95个百分点的语句。默认情况下,行按平均等待时间降序排序
| x$statements_with_sorting |已执行排序的规范化语句。默认情况下,行按总等待时间降序排序
| x$statements_with_temp_tables |使用临时表的规范化语句。默认情况下,行按使用的磁盘临时表的降序排列和使用的内存中临时表的降序排列
| x$user_summary |汇总了按用户分组的语句活动,文件I / O和连接。默认情况下,行按总等待时间降序排序
| x$user_summary_by_file_io |汇总了按用户分组的文件I / O。默认情况下,行按总文件I / O延迟降序排序
| x$user_summary_by_file_io_type |汇总了按用户和事件类型分组的文件I / O。默认情况下,行按用户和总等待时间降序排序
| x$user_summary_by_stages |总结了按用户分组的阶段。默认情况下,行按用户和总阶段延迟降序排序
| x$user_summary_by_statement_latency |汇总了按用户分组的总体语句统计信息。默认情况下,行按总等待时间降序排序
| x$user_summary_by_statement_type |总结了有关已执行语句的信息,并按用户和语句类型分组。默认情况下,行按用户和总等待时间降序排序
| x$wait_classes_global_by_avg_latency |汇总了按事件类分组的等待类平均等待时间。默认情况下,行按平均等待时间降序排序。空闲事件将被忽略
| x$wait_classes_global_by_latency |汇总了按事件类分组的等待类总延迟。默认情况下,行按总等待时间降序排序。空闲事件将被忽略
| x$waits_by_host_by_latency |总了按主机和事件分组的等待事件。默认情况下,行按主机和总等待时间降序排序。空闲事件将被忽略
| x$waits_by_user_by_latency |汇总了按用户和事件分组的等待事件。默认情况下,行按用户和总等待时间降序排序。空闲事件将被忽略
| x$waits_global_by_latency |汇总了按事件分组的等待事件。默认情况下,行按总等待时间降序排序。空闲事件将被忽略
+-----------------------------------------------+-----------------------------------------------+
101 rows in set (0.01 sec)
performance_schema
用于收集数据库服务器性能数据,以便分析问题。比如哪个SQL执行次数最多、耗时最长、哪个SQL被锁等有用的信息。
- 主要存储数据库服务器性能参数
- 提供进程等待的详细信息,包括锁、互斥变量、文件信息;
- 保存历史的事件汇总信息,为提供MySQL服务器性能做出详细的判断;
- 对于新增和删除监控事件点都非常容易,并可以随意改变mysql服务器的监控周期,例如(CYCLE、MICROSECOND)
+------------------------------------------------------+------------------------------------------------------+
| Tables_in_performance_schema |
+------------------------------------------------------+------------------------------------------------------+
| accounts |按照user@host的形式来对每个客户端的连接进行统计
| cond_instances |列出了服务器执行时性能架构所看到的所有条件
| events_stages_current |包含当前阶段事件的监控信息,每个线程一行记录显示线程正在执行的stage事件的状态
| events_stages_history |包含每个线程最新的N个阶段事件
| events_stages_history_long |包含最近的N个阶段事件
| events_stages_summary_by_account_by_event_name |按照每个帐户和事件名称进行聚合的阶段事件
| events_stages_summary_by_host_by_event_name |按照每个主机名和事件名称进行聚合的阶段事件
| events_stages_summary_by_thread_by_event_name |按照每个线程和事件名称进行聚合的阶段事件
| events_stages_summary_by_user_by_event_name |按照每个用户名和事件名称进行聚合的阶段事件
| events_stages_summary_global_by_event_name |按照每个事件名称进行聚合的阶段事件
| events_statements_current |包含当前语句事件,每个线程只显示一行最近被监视语句事件的当前状态
| events_statements_history |包含每个线程最新的N个语句事件
| events_statements_history_long |包含最近的N个语句事件
| events_statements_summary_by_account_by_event_name |按照每个帐户和语句事件名称进行统计
| events_statements_summary_by_digest |按照每个库级别对象和语句事件的原始语句文本统计值(md5 hash字符串)进行统计,该统计值是基于事件的原始语句文本进行精炼(原始语句转换为标准化语句),每行数据中的相关数值字段是具有相同统计值的统计结果
| events_statements_summary_by_host_by_event_name |按照每个主机名和事件名称进行统计的Statement事件
| events_statements_summary_by_program |按照每个存储程序(存储过程和函数,触发器和事件)的事件名称进行统计的Statement事件
| events_statements_summary_by_thread_by_event_name |按照每个线程和事件名称进行统计的Statement事件
| events_statements_summary_by_user_by_event_name |按照每个用户名和事件名称进行统计的Statement事件
| events_statements_summary_global_by_event_name |按照每个事件名称进行统计的Statement事件
| events_transactions_current |包含当前事务事件信息,每个线程只保留一行最近事务的事务事件
| events_transactions_history |包含每个线程最近的N个事务事件
| events_transactions_history_long |包含全局最近的N个事务事件
| events_transactions_summary_by_account_by_event_name |按照每个帐户和事件名称进行聚合的事务事件
| events_transactions_summary_by_host_by_event_name |按照每个主机名和事件名称进行聚合的事务事件
| events_transactions_summary_by_thread_by_event_name |按照每个线程和事件名称进行聚合的事务事件
| events_transactions_summary_by_user_by_event_name |按照每个用户名和事件名称进行聚合的事务事件
| events_transactions_summary_global_by_event_name |按照每个事件名称进行聚合的事务事件
| events_waits_current |记录当前正在执行的等待事件的,每个线程只记录1行记录
| events_waits_history |记录已经执行完的最近的等待事件历史,默认每个线程只记录10行记录
| events_waits_history_long |记录已经执行完的最近的等待事件历史,默认所有线程的总记录行数为10000行
| events_waits_summary_by_account_by_event_name |按照列EVENT_NAME、USER、HOST进行分组事件信息
| events_waits_summary_by_host_by_event_name |按照列EVENT_NAME、HOST进行分组事件信息
| events_waits_summary_by_instance |照列EVENT_NAME、OBJECT_INSTANCE_BEGIN进行分组事件信息
| events_waits_summary_by_thread_by_event_name |按照列THREAD_ID、EVENT_NAME进行分组事件信息
| events_waits_summary_by_user_by_event_name |按照列EVENT_NAME、USER进行分组事件信息
| events_waits_summary_global_by_event_name |按照EVENT_NAME列进行分组事件信息
| file_instances |文件实例
| file_summary_by_event_name |按照每个事件名称进行聚合的文件事件
| file_summary_by_instance |按照每个文件实例进行聚合的文件事件
| global_status |全局状态变量。如果只需要全局状态变量值的应用程序可以查询此表,中断的会话状态变量值会被聚合在此表中
| global_variables |全局系统变量。只需要全局系统变量值的应用程序可以从该表中获取
| host_cache |保存连接到server的主机相关信息缓存,其中包含客户机主机名和IP地址信息,可以用于避免DNS查找。该表可以使用SELECT语句进行查询,但需要在server启动之前开启performance_schema参数,否则表记录为空
| hosts |按照host名称对每个客户端连接进行统计
| memory_summary_by_account_by_event_name |按照每个帐户和事件名称进行聚合的内存操作
| memory_summary_by_host_by_event_name |按照每个主机和事件名称进行聚合的内存操作
| memory_summary_by_thread_by_event_name |按照每个线程和事件名称进行聚合的内存操作
| memory_summary_by_user_by_event_name |按照每个用户和事件名称进行聚合的内存操作
| memory_summary_global_by_event_name |按照每个事件名称进行聚合的全局内存操作
| metadata_locks |记录了各种Server层的锁信息(包括全局读锁和MDL锁信息)
| mutex_instances |互斥同步对象实例
| objects_summary_global_by_type |按照对象名称(库级别对象和表级别对象,如:库名和表名)进行聚合的等待事件
| performance_timers |记录了server中有哪些可用的事件计时器(注意:该表中的配置项不支持增删改,是只读的。有哪些计时器就表示当前的版本支持哪些计时器)
| prepared_statements_instances |按照每个prepare语句实例聚合的统计信息
| replication_applier_configuration |记录从库线程延迟复制的配置参数
| replication_applier_status |记录的是从库当前的一般事务执行状态(该表也记录组复制架构中的复制状态信息)
| replication_applier_status_by_coordinator |记录的是从库使用多线程复制时,从库的协调器工作状态记录,当从库使用多线程复制时,每个通道下将创建一个协调器和多个工作线程,使用协调器线程来管理这些工作线程
| replication_applier_status_by_worker |记录的是从库使用多线程复制时,从库的协调器工作状态记录,当从库使用多线程复制时,每个通道下将创建一个协调器和多个工作线程,使用协调器线程来管理这些工作线程
| replication_connection_configuration |记录从库用于连接到主库的配置参数,该表中存储的配置信息在执行change master语句时会被修改
| replication_connection_status |记录的是从库IO线程的连接状态信息(也记录组复制架构中其他节点的连接信息,组复制架构中一个节点加入集群之前的数据需要使用异步复制通道进行数据同步,组复制的异步复制通道信息在show slave status中不可见)
| replication_group_member_stats |记录了MySQL组复制成员的统计信息
| replication_group_members |记录组复制架构中,组成员的网络和状态信息
| rwlock_instances |锁同步对象实例
| session_account_connect_attrs |记录当前会话及其相关联的其他会话的连接属性
| session_connect_attrs |所有会话的连接属性
| session_status |当前会话的状态变量。如果只希望查询自己会话的所有状态变量值的应用程序可以查询此表(注意:该表包含没有会话级别的全局状态变量),只记录活跃会话,不记录已中断的会话
| session_variables |当前会话的系统变量。只需要获取自己当前会话的系统变量值可以从该表中获取(注意,该表中包含了无会话级别的全局变量值,且该表不记录已断开连接的系统变量)
| setup_actors |用于配置是否为新的前台server线程(与客户端连接相关联的线程)启用监视和历史事件日志记录
| setup_consumers |列出了consumers可配置列表项(注意:该表不支持增加和删除记录,只支持修改和查询)
| setup_instruments |列出了instruments 列表配置项,即代表了哪些事件支持被收集
| setup_objects |控制performance_schema是否监视特定对象
| setup_timers |记录当前使用的事件计时器信息(注意:该表不支持增加和删除记录,只支持修改和查询)
| socket_instances |活动连接实例
| socket_summary_by_event_name |按照事件名称进行聚合的Socket等待事件和I/O等待事件(这里的socket是指的当前活跃的连接创建的socket实例)
| socket_summary_by_instance |按照每个实例进行聚合的socket等待事件和I/O等待事件(这里的socket是指的当前活跃的连接创建的socket实例)
| status_by_account |按照每个帐户进行聚合的状态变量
| status_by_host |按照每个主机名进行聚合的状态变量
| status_by_thread |按照线程ID作为标识符记录每个活跃会话的状态变量。如果需要在某个会话中查询其他会话的状态变量值可以查询此表(注意:该表不包含只具有全局级别的状态变量),只记录活跃会话,不记录中断的会话
| status_by_user |按照每个用户名进行聚合的状态变量
| table_handles |表锁的持有和请求记录
| table_io_waits_summary_by_index_usage |按照每个索引进行聚合的表I/O等待事件
| table_io_waits_summary_by_table |按照每个表进行聚合的表I/O等待事件
| table_lock_waits_summary_by_table |按照每个表进行聚合的表锁等待事件
| threads |对于每个server线程生成一行包含线程相关的信息
| user_variables_by_thread |保存用户定义变量
| users |按照用户名对每个客户端连接进行统计
| variables_by_thread |按照线程ID为标识符记录的会话系统变量。想要在当前线程中查询其他指定线程ID的会话级别系统变量时,应用程序可以从该表中获取(注意,该表中仅包含有会话级别的系统变量)
+------------------------------------------------------+------------------------------------------------------+
87 rows in set (0.01 sec)
巨人的肩膀
从他人的工作中汲取经验来避免自己的错误重复,正如我们是站在巨人的肩膀上才能做出更好的成绩。
http://hutaow.com/blog/2013/11/06/mysql-protocol-analysis/
https://www.cnblogs.com/shengdimaya/p/6920677.html
https://segmentfault.com/a/1190000020855895
https://dev.mysql.com/doc/refman/5.7/en/sys-schema-object-index.html
http://www.searchdoc.cn/rdbms/mysql/dev.mysql.com/doc/refman/5.7/en/sys-schema-object-index.com.coder114.cn.html
http://www.searchdoc.cn/rdbms/mysql/dev.mysql.com/doc/refman/5.7/en/performance-schema-table-index.com.coder114.cn.html
https://www.1024sky.cn/blog/article/1707
https://github.com/xiaoboluo768/mysql-system-schema
https://cloud.tencent.com/developer/user/1408287/articles
VChat
一个没有哆啦A梦和静香的IT码农,不专业Gopher
mysql中高阶玩法系列(六)相关推荐
- mysql中高阶玩法系列(七)
目录 三种语句结束符 查看当前SQL执行状态.是否锁表 巨人的肩膀 VChat 先定义一张表,在之后的讲解中的所有例子,都是基于这张表做的演示,那么就定义一张最常见的用户表吧. CREATE TABL ...
- mysql中高阶玩法系列(八)
目录 列出服务器上的二进制日志文件 master服务器的二进制日志文件的状态信息 显示二进制日志中的事件 列出了在 table 缓存中当前打开的非临时的表 巨人的肩膀 VChat 先定义一张表,在之后 ...
- mysql中高阶玩法系列(九)
目录 显示有关存储引擎的操作信息 性能分析 show profiles show profile 实例1 实例2 巨人的肩膀 VChat 先定义一张表,在之后的讲解中的所有例子,都是基于这张表做的演示 ...
- 【Microsoft Azure 的1024种玩法】六十.通过Azure Virtual Machines快速搭建个人Ghost博客系统
[简介] Ghost 是一套基于Node.js 语言开发构建的开源博客系统,它的整体架构为前端管理系统基于Ember.js, 后端的模板引擎采用的handlebars, 数据库是基于MySQL的,本篇 ...
- pip高阶玩法,让python模块安装飞起来
在学习或者工作中,我们经常在搭建环境时需要下载安装一些库文件,但是pip默认下载使用的源是国外的,因此下载速度会很慢,所以在下载的时候我们可以将源地址换为国内的源,会大大提升下载速度. pip.ini ...
- 【Microsoft Azure 的1024种玩法】六.使用Azure Cloud Shell对Linux VirtualMachines 进行生命周期管理...
[文章简介] Azure Cloud Shell 是一个用于管理 Azure 资源的.可通过浏览器访问的交互式经验证 shell. 它使用户能够灵活选择最适合自己工作方式的 shell 体验,本篇文章 ...
- 【Microsoft Azure 的1024种玩法】六十二.利用Azure Private DNS 实现虚拟网络中域名的管理解析
[简介] Azure Private DNS是Azure为我们虚拟网络提供的安全可靠的DNS服务,我们无需自行配置DNS即可在虚拟网络中实现域名的解析及配置, 于此同时,我们在内网中也可以利用自己的自 ...
- 【Microsoft Azure 的1024种玩法】六十八.基于Azure云平台使用Azure Virtual machines快速搭建Docker容器
[简介] Docker 是一个开放源代码软件,主要应用于开发应用.交付应用.运行应用,Docker 可以将应用程序及其依赖项打包到可以在任何 Linux.Windows 或 macOS 计算机上运行的 ...
- 2019支付宝集五福高阶玩法 助你快速集齐五福
前几天我们曾介绍过2019支付宝集五福活动正式开启了,从1月25日到2月4日除夕,用户可以在这段时间内收集五福卡,除夕当晚会瓜分现金红包. 只要打开支付宝最新版,就可以在首页看到集五福入口,用户可以通 ...
最新文章
- Apr.2010 Microsoft MVP连任
- 程序编译是出现“field has incomplete type“问题的解决
- 出席全球数字经济大会 第四范式助力打造中国数字经济“北京样板”
- 菜鸟教程 之 JavaScript 教程
- Linux TCP/IP网络协议栈:IP协议源码分析
- go语言linux下开发工具,LiteIDE 开发工具指南 (Go语言开发工具)
- 计算两个String 类型的时间相关几个月
- 涂鸦蓝牙SDK开发系列教程——4.烧录授权
- journalctl日志工具使用方法
- python编写安装脚本_ido-Python 安装脚本包
- 英文文章单词自动查找脚本
- Object Detection in 20 Years: A Survey 20年间的目标检测:综述
- fortify源代码扫描问题分析汇总
- 大学计算机基础实践教程实验八,《大学计算机基础》实验报告八.doc
- fiddler--通过Fiddler模拟弱网进行测试
- 深圳租房信息聚类与回归分析
- 什么是快速连接器?如何选择合适的快速密封接头?
- 14-HAL库之I2C通信
- mysql create definer_Mysql CREATE DEFINER
- 带你深入了解Java!十七、超市会员管理系统!