searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

proxysql部署

2023-10-19 02:24:25
18
0

环境:centos 7.4+proxysql 1.4
主:172.17.69.118
从:172.17.69.119(从库一定要设置为read_only状态)

验证:
1,从库挂掉;读写正常,读请求分发到主库。
2,主库挂掉之后,读写全部阻塞。
2.1 从库提升为主后,可以设置从库(set global read_only=0),然后单个从库就可以处理读写请求。
2.2 原来的主库启动,读写正常。
2.3 从库提升为主库后,原来的主库设为从库(set global read_only=1),即打开read_only状态,将原来的主库设为只读变为从。


1,安装好mysq主从
注意:从库的配置文件中要加入read_only=1,不然在启动之后查询mysql_servers表会出现从库也会被自动加入写入的组中。proxysql区别主从的唯一方式就是read_only状态值。

2,安装proxy软件
[root@slave1 ~]# rpm -ivh proxysql-1.4.3-1.1.el7.x86_64.rpm
[root@slave1 ~]# service proxysql start

3,配置主从信息
注意:/etc/proxysql.cnf文件是proxysql的配置文件,proxysql服务初次启动时会读取这个文件,配置文件只在初次启动时有用,其余时候启动会自动加载proxysql.db文件,并将文件内容加载到runtime中使配置生效。
[root@slave1 ~]# mysql -uadmin -padmin -h127.0.0.1 -P6032            #登录到proxysql中配置
> use admin
>insert into mysql_servers(hostgroup_id,hostname,port,weight,max_connections,max_replication_lag,comment) values(100,'172.17.69.118',3306,1,1000,10,'test');
>insert into mysql_servers(hostgroup_id,hostname,port,weight,max_connections,max_replication_lag,comment) values(101,'172.17.69.118',3306,1,1000,10,'test');
>insert into mysql_servers(hostgroup_id,hostname,port,weight,max_connections,max_replication_lag,comment) values(101,'172.17.69.119',3306,9,1000,10,'test');
注释:这里设置的权重表示118主库也可以分担十分之一的查询。如果不这么配置,当主库挂了之后就无法查询。
>insert into mysql_replication_hostgroups values(100,101,'masterha') ;        #添加读写映射
>load mysql servers to runtime;                #将主从信息保存到配置,立即生效
>save mysql servers to disk;                        
 mysql> select * from mysql_servers;
+--------------+---------------+------+--------+--------+-------------+-----------------+---------------------+---------+----------------+---------+
| hostgroup_id | hostname      | port | status | weight | compression | max_connections | max_replication_lag | use_ssl | max_latency_ms | comment |
+--------------+---------------+------+--------+--------+-------------+-----------------+---------------------+---------+----------------+---------+
| 100          | 172.17.69.118 | 3306 | ONLINE | 1      | 0           | 1000            | 10                  | 0       | 0              | test    |
| 100          | 172.17.69.119 | 3306 | ONLINE | 1      | 0           | 1000            | 10                  | 0       | 0              | test    |
| 101          | 172.17.69.119 | 3306 | ONLINE | 1      | 0           | 1000            | 10                  | 0       | 0              | test    |
+--------------+---------------+------+--------+--------+-------------+-----------------+---------------------+---------+----------------+---------+
#hostgroup_id是组号,后续的属性设置和路由策略都是基于hostgroup来做。其中hostgroup_id 0是一个特殊的组号,如果没有匹配到路由规则,则默认选择hostgroup 0
#hostname和port决定了加入该组的mysql实例
#status:
  Online:当前后端实例状态正常
  SHUNNED:临时被剔除,可能因后端 too many connections error,或者超过了可容忍延迟阀值 max_replication_lag
  OFFINE_SOFT: "软离线"状态,不再接受新的连接,但已建立的连接会等待活跃事务完成
  OFFLINE_HARD: "硬离线"状态,不再接受新的连接,已建立的连接或被强制中断。当后端实例宕机或网络不可达,会出现。
#weight是权重,同一个hostgroup_id内的成员默认是基于权重做轮询
#max_connections是允许连接到该后端实例的最大连接数,建议不要设置超过后端mysql实例的max_connections
#max_replication_lag: 允许的最大延迟,主库不受这个影响,默认0。如果 > 0, monitor 模块监控主从延迟大于阀值时,会临时把它变为 SHUNNED
#max_latency_ms: mysql_ping 响应时间,大于这个阀值会把它从连接池剔除(即使是ONLINE),默认0
#comment:备注


4,在proxysql中配置监控账号和程序登录账号:
[root@slave1 ~]# mysql -uadmin -padmin -h127.0.0.1 -P6032
> set mysql-monitor_username='replyuser';                ##健康监测账号
> set mysql-monitor_password='replypass';
> load mysql variables to runtime;
> save mysql variables to disk;
> insert into mysql_users(username,password,active,default_hostgroup,transaction_persistent) values('root','123456',1,100,1);
>load mysql users to runtime;
>save mysql users to disk;
mysql> select * from mysql_users\G
*************************** 1. row ***************************
             username: user0            #后端mysql实例的用户名
             password: password0    #后端mysql实例的密码
               active: 1            #active=1表示用户生效,0表示不生效
              use_ssl: 0    
    default_hostgroup: 100    #用户默认登录到哪个hostgroup_id下的实例
       default_schema: NULL    #用户默认登录后端mysql实例时连接的数据库,这个地方为NULL的话,则由全局变量mysql-default_schema决定,默认是information_schema
        schema_locked: 0    
transaction_persistent: 1    #如果设置为1,连接上ProxySQL的会话后,如果在一个hostgroup上开启了事务,那么后续的sql都继续维持在这个hostgroup上,不伦是否会匹配上其它路由规则,直到事务结束。虽然默认是0
         fast_forward: 0            #忽略查询重写/缓存层,直接把这个用户的请求透传到后端DB。相当于只用它的连接池功能,一般不用,路由规则 .* 就行了
              backend: 1
             frontend: 1
      max_connections: 10000  #该用户允许的最大连接数
1 rows in set (0.00 sec)

其他变量可以自行调整:
>set mysql-default_charset = 'utf8mb4';
>set mysql-query_retries_on_failure=0;
>set mysql-eventslog_filename='queries.log';
>set mysql-ping_timeout_server=1500;
>set mysql-monitor_connect_timeout=1000;
修改完了之后要加载配置:
>load mysql servers to runtime;
>load mysql users to runtime;
>load mysql variables to runtime;
>save mysql servers to disk;
>save mysql users to disk;
>save mysql variables to disk;


5,在proxysql中配置路由规则实现读写分离
[root@slave1 ~]# mysql -uadmin -padmin -h127.0.0.1 -P6032
>INSERT INTO mysql_query_rules(active,match_pattern,destination_hostgroup,apply) VALUES(1,'^SELECT.*FOR UPDATE$',100,1);                #除select * from tb for update的select全部发送到slave,其他的的语句发送到master。
>INSERT INTO mysql_query_rules(active,match_pattern,destination_hostgroup,apply) VALUES(1,'^SELECT',101,1);
>LOAD MYSQL QUERY RULES TO RUNTIME;
>SAVE MYSQL QUERY RULES TO DISK;
mysql> select * from mysql_query_rules\G;
*************************** 1. row ***************************
             rule_id: 1                ##表主键,自增。规则处理是以 rule_id 的顺序进行
              active: 1                ##active表示是否启用这个sql路由项,1表示启用。
            username: NULL        #如果非 NULL,只有连接用户是 username 的值才会匹配
          schemaname: NULL         #如果非 NULL,只有查询连接使用的db是 schemaname 的值才会匹配。注意如果是 NULL,不代表连接没有使用schema,而是无论任何schema都进一步匹配
              flagIN: 0                
         client_addr: NULL        #匹配客户端来源IP
          proxy_addr: NULL        #匹配本地proxysql的IP
          proxy_port: NULL                #匹配本地proxysql的Port
              digest: NULL                        #精确的匹配一类查询
        match_digest: NULL                #正则匹配一类查询。query digest 是指对查询去掉具体值后进行"模糊化"后的查询
       match_pattern: ^SELECT.*FOR UPDATE$                #正则表达式匹配查询
negate_match_pattern: 0                ##反向匹配,相当于对 match_digest/
        re_modifiers: CASELESS                
             flagOUT: NULL
     replace_pattern: NULL                 #查询重写,默认为空,不rewrite
destination_hostgroup: 100                 #路由查询到这个 hostgroup。当然如果用户显式start transaction 且transaction_persistent=1,那么即使匹配到了,也依然按照事务里第一条sql的路由规则去走
           cache_ttl: NULL                #查询结果缓存的毫秒数。proxysql这个 Query Cache 与 MySQL 自带的query cache不是同一个。proxysql query cache也不会关心后端数据是否被修改,它所做的就是针对某些特定种类的查询结果进行缓存,比如一些历史数据的count结果。一般不设
           reconnect: NULL
             timeout: NULL                 #这一类查询执行的最大时间(毫秒),超时则自动kill。这是对后端DB的保护机制,默认mysql-default_query_timeout给的是10h
             retries: NULL                        #语句在执行时失败时,重试次数。默认由 mysql-query_retries_on_failure变量指定,默认为1
               delay: NULL                        #查询延迟执行,这是ProxySQL提供的限流机制,会让其它的查询优先执行
   next_query_flagIN: NULL
      mirror_flagOUT: NULL
    mirror_hostgroup: NULL
           error_msg: NULL                #默认为NULL,如果指定了则这个查询直接被 阻塞掉,马上返回这个错误信息。
              OK_msg: NULL
         sticky_conn: NULL
           multiplex: NULL                #连接是否复用
                 log: NULL                        #是否记录查询日志
               apply: 1
1 rows in set (0.00 sec)

#flagIN, flagOUT, apply: 用来定义路由链 chains of rules
#首先会检查 flagIN=0 的规则,以rule_id的顺序;如果都没匹配上,则走这个用户的 default_hostgroup
#当匹配一条规则后,会检查 flagOUT
#如果不为NULL,并且 flagIN != flagOUT ,则进入以flagIN为上一个flagOUT值的新规则链
#如果不为NULL,并且 flagIN = flagOUT,则应用这条规则
#如果为NULL,或者 apply=1,则结束,应用这条规则
#如果最终没有匹配到,则找到这个用户的 default_hostgroup


6,读写分离验证:
[root@slave1 ~]# mysql -uroot -p123456 -h127.0.0.1 -P6033                        #这里已经不是-uadmin,-padmin了
> insert into test.aa values(1);
> select * from test.aa;
>select * from stats_mysql_query_digest;              ######查看分发到哪个服务器
>select * from monitor.mysql_server_ping_log;           ####查看服务器是否连接正常


7,相关表
相关表:
stats_mysql_processlist:类似MySQL的show processlist的命令,查看各线程的状态。
stats_mysql_commands_counters                     #统计各种SQL类型的执行次数和时间

stats_mysql_connection_pool                                #连接后端MySQL的连接信息
hostgroup:后端服务器所属的主机组。请注意,单个后端服务器可以属于多个主机组。
srv_host,srv_port:mysqld后端服务器正在侦听连接的TCP端点的IP和Port。
status:后端服务器的状态。可以有ONLINE,SHUNNED,OFFLINE_SOFT,OFFLINE_HARD。有关每个状态意味着什么的详细信息,请参阅上面的mysql_servers表的描述。
ConnUsed:ProxySQL当前使用多少个连接来向后端服务器发送查询。
ConnFree:目前有多少个连接是空闲。
ConnOK:成功建立了多少个连接。
ConnERR:没有成功建立多少个连接。
Queries:路由到此特定后端服务器的查询数。
Bytes_data_sent:发送到后端的数据量。
Bytes_data_recv:从后端接收的数据量。
Latency_ms:从Monitor报告的当前ping以毫秒为单位的延迟时间。

stats_mysql_global:        #代表与MySQL相关的代理级别的全局统计,如:
Client_Connections_aborted:由于无效凭据或max_connections而导致的前端连接数已达到。
Client_Connections_connected - 当前连接的前端连接数。
Client_Connections_created - 到目前为止创建的前端连接数。
Questions :从前端发送的查询总数。
Slow_queries:在全局变量中定义的运行时间超过阈值的毫秒数的查询数mysql-long_query_time

stats_mysql_query_digest:表示SQL的执行次数、时间消耗等。通过变量mysql-query_digests控制开关,默认是开。
stats_mysql_query_digest_reset和stats_mysql_query_digest结构一样,stats_mysql_query_digest_reset可以清空stats_mysql_query_digest的数据,如执行:
select * from stats_mysql_query_digest_reset;
show create table stats.stats_mysql_query_digest_reset;
执行上面的任意一条就可以清空stats_mysql_query_digest表。



 

0条评论
作者已关闭评论
zi000zi000
7文章数
0粉丝数
zi000zi000
7 文章 | 0 粉丝
zi000zi000
7文章数
0粉丝数
zi000zi000
7 文章 | 0 粉丝
原创

proxysql部署

2023-10-19 02:24:25
18
0

环境:centos 7.4+proxysql 1.4
主:172.17.69.118
从:172.17.69.119(从库一定要设置为read_only状态)

验证:
1,从库挂掉;读写正常,读请求分发到主库。
2,主库挂掉之后,读写全部阻塞。
2.1 从库提升为主后,可以设置从库(set global read_only=0),然后单个从库就可以处理读写请求。
2.2 原来的主库启动,读写正常。
2.3 从库提升为主库后,原来的主库设为从库(set global read_only=1),即打开read_only状态,将原来的主库设为只读变为从。


1,安装好mysq主从
注意:从库的配置文件中要加入read_only=1,不然在启动之后查询mysql_servers表会出现从库也会被自动加入写入的组中。proxysql区别主从的唯一方式就是read_only状态值。

2,安装proxy软件
[root@slave1 ~]# rpm -ivh proxysql-1.4.3-1.1.el7.x86_64.rpm
[root@slave1 ~]# service proxysql start

3,配置主从信息
注意:/etc/proxysql.cnf文件是proxysql的配置文件,proxysql服务初次启动时会读取这个文件,配置文件只在初次启动时有用,其余时候启动会自动加载proxysql.db文件,并将文件内容加载到runtime中使配置生效。
[root@slave1 ~]# mysql -uadmin -padmin -h127.0.0.1 -P6032            #登录到proxysql中配置
> use admin
>insert into mysql_servers(hostgroup_id,hostname,port,weight,max_connections,max_replication_lag,comment) values(100,'172.17.69.118',3306,1,1000,10,'test');
>insert into mysql_servers(hostgroup_id,hostname,port,weight,max_connections,max_replication_lag,comment) values(101,'172.17.69.118',3306,1,1000,10,'test');
>insert into mysql_servers(hostgroup_id,hostname,port,weight,max_connections,max_replication_lag,comment) values(101,'172.17.69.119',3306,9,1000,10,'test');
注释:这里设置的权重表示118主库也可以分担十分之一的查询。如果不这么配置,当主库挂了之后就无法查询。
>insert into mysql_replication_hostgroups values(100,101,'masterha') ;        #添加读写映射
>load mysql servers to runtime;                #将主从信息保存到配置,立即生效
>save mysql servers to disk;                        
 mysql> select * from mysql_servers;
+--------------+---------------+------+--------+--------+-------------+-----------------+---------------------+---------+----------------+---------+
| hostgroup_id | hostname      | port | status | weight | compression | max_connections | max_replication_lag | use_ssl | max_latency_ms | comment |
+--------------+---------------+------+--------+--------+-------------+-----------------+---------------------+---------+----------------+---------+
| 100          | 172.17.69.118 | 3306 | ONLINE | 1      | 0           | 1000            | 10                  | 0       | 0              | test    |
| 100          | 172.17.69.119 | 3306 | ONLINE | 1      | 0           | 1000            | 10                  | 0       | 0              | test    |
| 101          | 172.17.69.119 | 3306 | ONLINE | 1      | 0           | 1000            | 10                  | 0       | 0              | test    |
+--------------+---------------+------+--------+--------+-------------+-----------------+---------------------+---------+----------------+---------+
#hostgroup_id是组号,后续的属性设置和路由策略都是基于hostgroup来做。其中hostgroup_id 0是一个特殊的组号,如果没有匹配到路由规则,则默认选择hostgroup 0
#hostname和port决定了加入该组的mysql实例
#status:
  Online:当前后端实例状态正常
  SHUNNED:临时被剔除,可能因后端 too many connections error,或者超过了可容忍延迟阀值 max_replication_lag
  OFFINE_SOFT: "软离线"状态,不再接受新的连接,但已建立的连接会等待活跃事务完成
  OFFLINE_HARD: "硬离线"状态,不再接受新的连接,已建立的连接或被强制中断。当后端实例宕机或网络不可达,会出现。
#weight是权重,同一个hostgroup_id内的成员默认是基于权重做轮询
#max_connections是允许连接到该后端实例的最大连接数,建议不要设置超过后端mysql实例的max_connections
#max_replication_lag: 允许的最大延迟,主库不受这个影响,默认0。如果 > 0, monitor 模块监控主从延迟大于阀值时,会临时把它变为 SHUNNED
#max_latency_ms: mysql_ping 响应时间,大于这个阀值会把它从连接池剔除(即使是ONLINE),默认0
#comment:备注


4,在proxysql中配置监控账号和程序登录账号:
[root@slave1 ~]# mysql -uadmin -padmin -h127.0.0.1 -P6032
> set mysql-monitor_username='replyuser';                ##健康监测账号
> set mysql-monitor_password='replypass';
> load mysql variables to runtime;
> save mysql variables to disk;
> insert into mysql_users(username,password,active,default_hostgroup,transaction_persistent) values('root','123456',1,100,1);
>load mysql users to runtime;
>save mysql users to disk;
mysql> select * from mysql_users\G
*************************** 1. row ***************************
             username: user0            #后端mysql实例的用户名
             password: password0    #后端mysql实例的密码
               active: 1            #active=1表示用户生效,0表示不生效
              use_ssl: 0    
    default_hostgroup: 100    #用户默认登录到哪个hostgroup_id下的实例
       default_schema: NULL    #用户默认登录后端mysql实例时连接的数据库,这个地方为NULL的话,则由全局变量mysql-default_schema决定,默认是information_schema
        schema_locked: 0    
transaction_persistent: 1    #如果设置为1,连接上ProxySQL的会话后,如果在一个hostgroup上开启了事务,那么后续的sql都继续维持在这个hostgroup上,不伦是否会匹配上其它路由规则,直到事务结束。虽然默认是0
         fast_forward: 0            #忽略查询重写/缓存层,直接把这个用户的请求透传到后端DB。相当于只用它的连接池功能,一般不用,路由规则 .* 就行了
              backend: 1
             frontend: 1
      max_connections: 10000  #该用户允许的最大连接数
1 rows in set (0.00 sec)

其他变量可以自行调整:
>set mysql-default_charset = 'utf8mb4';
>set mysql-query_retries_on_failure=0;
>set mysql-eventslog_filename='queries.log';
>set mysql-ping_timeout_server=1500;
>set mysql-monitor_connect_timeout=1000;
修改完了之后要加载配置:
>load mysql servers to runtime;
>load mysql users to runtime;
>load mysql variables to runtime;
>save mysql servers to disk;
>save mysql users to disk;
>save mysql variables to disk;


5,在proxysql中配置路由规则实现读写分离
[root@slave1 ~]# mysql -uadmin -padmin -h127.0.0.1 -P6032
>INSERT INTO mysql_query_rules(active,match_pattern,destination_hostgroup,apply) VALUES(1,'^SELECT.*FOR UPDATE$',100,1);                #除select * from tb for update的select全部发送到slave,其他的的语句发送到master。
>INSERT INTO mysql_query_rules(active,match_pattern,destination_hostgroup,apply) VALUES(1,'^SELECT',101,1);
>LOAD MYSQL QUERY RULES TO RUNTIME;
>SAVE MYSQL QUERY RULES TO DISK;
mysql> select * from mysql_query_rules\G;
*************************** 1. row ***************************
             rule_id: 1                ##表主键,自增。规则处理是以 rule_id 的顺序进行
              active: 1                ##active表示是否启用这个sql路由项,1表示启用。
            username: NULL        #如果非 NULL,只有连接用户是 username 的值才会匹配
          schemaname: NULL         #如果非 NULL,只有查询连接使用的db是 schemaname 的值才会匹配。注意如果是 NULL,不代表连接没有使用schema,而是无论任何schema都进一步匹配
              flagIN: 0                
         client_addr: NULL        #匹配客户端来源IP
          proxy_addr: NULL        #匹配本地proxysql的IP
          proxy_port: NULL                #匹配本地proxysql的Port
              digest: NULL                        #精确的匹配一类查询
        match_digest: NULL                #正则匹配一类查询。query digest 是指对查询去掉具体值后进行"模糊化"后的查询
       match_pattern: ^SELECT.*FOR UPDATE$                #正则表达式匹配查询
negate_match_pattern: 0                ##反向匹配,相当于对 match_digest/
        re_modifiers: CASELESS                
             flagOUT: NULL
     replace_pattern: NULL                 #查询重写,默认为空,不rewrite
destination_hostgroup: 100                 #路由查询到这个 hostgroup。当然如果用户显式start transaction 且transaction_persistent=1,那么即使匹配到了,也依然按照事务里第一条sql的路由规则去走
           cache_ttl: NULL                #查询结果缓存的毫秒数。proxysql这个 Query Cache 与 MySQL 自带的query cache不是同一个。proxysql query cache也不会关心后端数据是否被修改,它所做的就是针对某些特定种类的查询结果进行缓存,比如一些历史数据的count结果。一般不设
           reconnect: NULL
             timeout: NULL                 #这一类查询执行的最大时间(毫秒),超时则自动kill。这是对后端DB的保护机制,默认mysql-default_query_timeout给的是10h
             retries: NULL                        #语句在执行时失败时,重试次数。默认由 mysql-query_retries_on_failure变量指定,默认为1
               delay: NULL                        #查询延迟执行,这是ProxySQL提供的限流机制,会让其它的查询优先执行
   next_query_flagIN: NULL
      mirror_flagOUT: NULL
    mirror_hostgroup: NULL
           error_msg: NULL                #默认为NULL,如果指定了则这个查询直接被 阻塞掉,马上返回这个错误信息。
              OK_msg: NULL
         sticky_conn: NULL
           multiplex: NULL                #连接是否复用
                 log: NULL                        #是否记录查询日志
               apply: 1
1 rows in set (0.00 sec)

#flagIN, flagOUT, apply: 用来定义路由链 chains of rules
#首先会检查 flagIN=0 的规则,以rule_id的顺序;如果都没匹配上,则走这个用户的 default_hostgroup
#当匹配一条规则后,会检查 flagOUT
#如果不为NULL,并且 flagIN != flagOUT ,则进入以flagIN为上一个flagOUT值的新规则链
#如果不为NULL,并且 flagIN = flagOUT,则应用这条规则
#如果为NULL,或者 apply=1,则结束,应用这条规则
#如果最终没有匹配到,则找到这个用户的 default_hostgroup


6,读写分离验证:
[root@slave1 ~]# mysql -uroot -p123456 -h127.0.0.1 -P6033                        #这里已经不是-uadmin,-padmin了
> insert into test.aa values(1);
> select * from test.aa;
>select * from stats_mysql_query_digest;              ######查看分发到哪个服务器
>select * from monitor.mysql_server_ping_log;           ####查看服务器是否连接正常


7,相关表
相关表:
stats_mysql_processlist:类似MySQL的show processlist的命令,查看各线程的状态。
stats_mysql_commands_counters                     #统计各种SQL类型的执行次数和时间

stats_mysql_connection_pool                                #连接后端MySQL的连接信息
hostgroup:后端服务器所属的主机组。请注意,单个后端服务器可以属于多个主机组。
srv_host,srv_port:mysqld后端服务器正在侦听连接的TCP端点的IP和Port。
status:后端服务器的状态。可以有ONLINE,SHUNNED,OFFLINE_SOFT,OFFLINE_HARD。有关每个状态意味着什么的详细信息,请参阅上面的mysql_servers表的描述。
ConnUsed:ProxySQL当前使用多少个连接来向后端服务器发送查询。
ConnFree:目前有多少个连接是空闲。
ConnOK:成功建立了多少个连接。
ConnERR:没有成功建立多少个连接。
Queries:路由到此特定后端服务器的查询数。
Bytes_data_sent:发送到后端的数据量。
Bytes_data_recv:从后端接收的数据量。
Latency_ms:从Monitor报告的当前ping以毫秒为单位的延迟时间。

stats_mysql_global:        #代表与MySQL相关的代理级别的全局统计,如:
Client_Connections_aborted:由于无效凭据或max_connections而导致的前端连接数已达到。
Client_Connections_connected - 当前连接的前端连接数。
Client_Connections_created - 到目前为止创建的前端连接数。
Questions :从前端发送的查询总数。
Slow_queries:在全局变量中定义的运行时间超过阈值的毫秒数的查询数mysql-long_query_time

stats_mysql_query_digest:表示SQL的执行次数、时间消耗等。通过变量mysql-query_digests控制开关,默认是开。
stats_mysql_query_digest_reset和stats_mysql_query_digest结构一样,stats_mysql_query_digest_reset可以清空stats_mysql_query_digest的数据,如执行:
select * from stats_mysql_query_digest_reset;
show create table stats.stats_mysql_query_digest_reset;
执行上面的任意一条就可以清空stats_mysql_query_digest表。



 

文章来自个人专栏
mysql
7 文章 | 1 订阅
0条评论
作者已关闭评论
作者已关闭评论
0
0