一 简介: proxysql相关知识汇总
二 proxysql 相关报错
1 proxysql 报错 too many connections
分析 proxysql关于连接池的参数
mysql_server max_connections
mysql关于连接限制参数
max_connections
1 由这两方面参数共同决定 最大上限
2 对于每个hostgroup/backend,主机组管理器只会保持连接池中的最大连接数为mysql-free_connections_pct * mysql_servers.max_connections / 100。池中的每个空闲连接都通过间断性的ping来维持它的打开状态。保证连接池容量
1 proxysql的最大连接数不能大于MySQL设置的最大连接数
2 如果存在多个链接数限制对于同一台机器,则取较大为准
三 定理
1 连接池复用技术
情况:一个后端DB的连接,可以“同时”被多个客户端使用
改进对比
传统的连接池,会在客户端断开连接(会话)后,把连接放回到池里。
在ProxySQL中,由于连接复用,连接会在 sql语句 执行结束后,便将连接放回到池里(客户端会话可能并没有断开),这样便可大大提高后端连接的使用效率,而避免前段请求过大导致后端连接数疯长。
2 数据缓存技术
情况:类似于mysql的query_cache,但是缓存从mysql层提到了中间层,减少了对数据库的影响,增加了提升查询效率的可能性
四 proxysql 相关参数
变量
1 mysql-max_allowed_packet 设置数据包大小-常见于java sql报错
表列含义
1 transaction_persisnt(1) 保证事务内查询路由到主库