max_connections
:MySQL实例同时存在的连接数上限max_connections
,系统会拒绝接下来的连接请求,返回:Too many connections
max_connections
的限制max_connections
的目的是保护MySQL的max_connections
设置得过大,更多的连接就会进来,导致系统负载会进一步加大
KILL CONNECTION
:主动踢除不需要保持的连接(与wait_timeout
的效果一样)
时刻 | sission A | session B | session C |
---|---|---|---|
T | BEGIN;INSERT INTO t VALUES (1,1); | SELECT * FROM t WHERE id=1; | |
T+30s | SHOW PROCESSLIST;KILL CONNECTION |
Sleep
状态的连接是有损的
trx_mysql_thread_id
:id=4
的线程还处在事务中
KILL CONNECTION id
,如果连接在此前处于Sleep
状态,客户端是不会立马知道ERROR 2006 (HY000): MySQL server has gone away
--skip-grant-tables
--skip-grant-tables
参数,默认会启用--skip-networking
(本地客户端)Online DDL
– ALTER TABLE
SET sql_log_bin=OFF
(不写binlog),ALTER TABLE
加上索引SET sql_log_bin=OFF
(不写binlog),ALTER TABLE
加上索引gh-ost
FORCE INDEX
query_rewrite
+ FORCE INDEX
slow_query_log=ON
+long_query_time=0
Rows_examined
是否与预期的一致pt-query-digest
《MySQL实战45讲》