max_connections:MySQL实例同时存在的连接数上限max_connections,系统会拒绝接下来的连接请求,返回:Too many connectionsmax_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 TABLESET sql_log_bin=OFF(不写binlog),ALTER TABLE加上索引SET sql_log_bin=OFF(不写binlog),ALTER TABLE加上索引gh-ost
FORCE INDEXquery_rewrite + FORCE INDEXslow_query_log=ON+long_query_time=0Rows_examined是否与预期的一致pt-query-digest《MySQL实战45讲》