mysql变量-show_compatibility_56

一、简介

INFORMATION_SCHEMA 具有包含系统和状态变量信息的表( GLOBAL_VARIABLES,SESSION_VARIABLES , GLOBAL_STATUS ,SESSION_STATUS )。 从 MySQL 5.7.6 开始,Performance Schema也包含系统和状态变量表。 Performance Schema 表旨在替换 INFORMATION_SCHEMA 表,后者从 MySQL 5.7.6 开始已弃用,并在 MySQL 8.0 中删除。在 MySQL 8.0 中,删除了 INFORMATION_SCHEMA 变量表和 show_compatibility_56 系统变量,并且 SHOW 语句的输出始终基于Performance Schema表。详见官网

二、详细表现

1.SHOW GLOBAL VARIABLES

  • ON: 5.6的输出
  • OFF:输出Performance Schema global_variables表中的内容

2.SHOW [SESSION | LOCAL] VARIABLES

  • ON: 5.6的输出
  • OFF:输出Performance Schema session_variables表中的内容(在 MySQL 5.7.6 和 5.7.7 中,OFF 输出并不完全反映当前会话有效的所有系统变量值;它不包含没有session 变量对应项的全局变量的行。这一问题在 MySQL 5.7.8 中得到纠正。 )

3.SHOW GLOBAL STATUS

  • ON: 5.6的输出
  • OFF:输出Performance Schema global_status表中的内容以及Com_xxx 语句执行计数器。

4.SHOW [SESSION | LOCAL] STATUS

  • ON: 5.6的输出
  • OFF:输出Performance Schema global_status表中的内容以及Com_xxx 语句执行计数器。(在 MySQL 5.7.6 和 5.7.7 中,OFF 输出并不完全反映当前会话有效的所有状态变量值;它不包含没有session status对应项的全局变量的行。这在 MySQL 5.7.8 中得到了纠正。 )

在 MySQL 5.7.6 和 5.7.7 中,对于刚才描述的每个 SHOW 语句,当 show_compatibility_56=ON 时使用 WHERE 子句会产生警告,而当 show_compatibility_56=OFF 时会产生错误。 (这适用于未优化掉的 WHERE 子句。例如,WHERE 1 很简单,已被优化掉,因此不会产生警告或错误。)从 MySQL 5.7.8 开始,这种行为不会发生; 与 5.7.6 之前一样支持 WHERE。

5.show_compatibility_56 对 INFORMATION_SCHEMA 表的影响

简介:INFORMATION_SCHEMA 表(GLOBAL_VARIABLES、SESSION_VARIABLES、GLOBAL_STATUS 和 SESSION_STATUS)

  • ON:MySQL 5.6 输出,带有弃用警告。
  • OFF:从这些表中查询会产生错误。 (在 5.7.9 之前,从这些表中进行查询不会产生任何输出,并带有弃用警告。)

6.show_compatibility_56 对Performance Schema表的影响

6.1 Performance Schema系统变量(variable)表:

  • OFF:
    global_variables:仅限全局系统变量。
    session_variables:当前会话有效的系统变量:每个会话变量一行,每个没有会话对应项的全局变量一行。
    variables_by_thread:仅限每个活动会话的会话系统变量。
  • ON:与 OFF 相同的输出。 (在 5.7.8 之前,这些表不产生输出。)

6.2 Performance Schema状态变量(status)表:

  • OFF:
    global_status:仅限全局状态变量。
    session_status:对当前会话有效的状态变量:每个session变量占一行,每个没有session对应项的全局变量占一行。
    status_by_account: 仅会话状态变量,按帐户聚合。
    status_by_host:仅会话状态变量,按主机名聚合。
    status_by_thread:仅限每个活动会话的会话状态变量。
    status_by_user:仅会话状态变量,按用户名聚合。
    Performance Schema 不会收集状态变量表中 Com_xxx 状态变量的统计信息。 要获取全局和每个会话语句执行计数,请分别使用 events_statements_summary_global_by_event_name 和 events_statements_summary_by_thread_by_event_name 表。

  • ON:与 OFF 相同的输出。 (在 5.7.9 之前,这些表不产生输出。)

7.show_compatibility_56 对slave状态变量的影响

  • ON:可从 SHOW STATUS 获取多个 Slave_xxx 状态变量。
  • OFF:其中一些副本变量不会暴露给 SHOW STATUS 或Performance Schema状态变量表。 它们提供的信息可在与复制相关的性能架构表中找到。 下表显示了哪些 Slave_xxx 状态变量在 SHOW STATUS 中变得不可用以及它们在Performance Schema复制表中的位置
Status Variable Performance Schema Location
Slave_heartbeat_period replication_connection_configuration table, HEARTBEAT_INTERVAL column
Slave_last_heartbeat replication_connection_status table, LAST_HEARTBEAT_TIMESTAMP column
Slave_received_heartbeats replication_connection_status table, COUNT_RECEIVED_HEARTBEATS column
Slave_retried_transactions replication_applier_status table, COUNT_TRANSACTIONS_RETRIES column
Slave_running replication_connection_status and replication_applier_status tables, SERVICE_STATE column

8.show_compatibility_56 对FLUSH STATUS的影响

  • ON:此语句产生 MySQL 5.6 行为。 它将当前线程的会话状态变量值添加到全局值并将会话值重置为零。 一些全局变量也可能重置为零。 它还将密钥缓存的计数器(默认和命名)重置为零,并将 Max_used_connections 设置为当前打开的连接数。

  • OFF:此语句将所有活动会话的会话状态添加到全局状态变量,重置所有活动会话的状态,并重置从断开连接的会话聚合的帐户、主机和用户状态值。