概述
tcp_close_connection_after_queries_num (用于查询限制)
或 tcp_close_connection_after_queries_seconds (用于持续时间限制) 设置为大于 0 来启用连接限制。
如果两个限制都已启用,则哪个限制先达到,连接就会先因其而关闭。
当达到限制并断开连接时,客户端会收到
TCP_CONNECTION_LIMIT_REACHED 异常,并且触发断开的那条查询绝不会被处理。
查询限制
tcp_close_connection_after_queries_num 设置为 N,则该连接最多允许
N 个成功查询。到第 N + 1 个查询时,客户端会断开连接。
每个已处理的查询都会计入查询限制。因此,连接命令行客户端时,
可能会自动执行一条初始系统警告查询,这也会计入限制。
当 TCP 连接处于空闲状态时 (即在一段时间内未处理查询,
该时长由会话设置 poll_interval 指定) ,此前累计的查询次数会重置为 0。
这意味着,如果期间发生空闲,
单个连接中的查询总次数可能会超过
tcp_close_connection_after_queries_num。
持续时间限制
tcp_close_connection_after_queries_seconds 秒后,客户端会在下一次执行查询时断开连接。