ProxySQL 是一个高性能的代理,目前用于 MySQL生 态系统中的 MySQL 和数据库服务器(比如用于 MySQL 和 MariaDB 的 Percona Server),它充当从数据库中寻找资源的客户端请求的中介。2.0.6 版本已经发布,它引入了许多新特性和增强功能,并修复了一些 bug,自从上一个版本以来,proxysql-admin 工具没有改变。具体如下:
支持获取锁的 SELECT 语句
2.0.5 版本只支持 SELECT FOR UPDATE ,现在是支持:
SELECT ... FOR SHARE
SELECT ... LOCK IN SHARE MODE
SELECT ... FOR (UPDATE|SHARE) [OF ...] (NOWAIT|SKIP LOCKED)
拒绝具有未知字符集的连接
proxysql --version 现在打印到 stdout 而不是 stderr
- 添加对 com_field_list 命令的支持
- 如果 select 语句在多语句命令中使用,或者如果 select 语句的解析不成功,则将禁用多路复用和查询路由,客户端仍然绑定到单个后端连接
- ProxySQL 现在向客户端发送 GTID 信息(Session_Track_GTIDS)
- 此版本客户端功能标志 Client_Find_ROWS、Client_MultiResults 和 Client_multi 语句被跟踪,后端连接将具有相同的标志
- 对 AWS Aurora 模块的各种增强,主要支持 max_lag_ms 和 min_epoch_ms 作为注释修饰符
- SSLv 3 现在被禁用
- 如果客户端发出 COM_SET_OPTION 命令,则会相应地更改并跟踪标记 CLIENT_MULTI_STATEMENTS
如果查询表 stats_mysql_query_Digest_Reset,但不查询 stats_mysql_query_digest,则只填充第一个表
如果查询表stats_mysql_query_digest_reset,并且也查询 stats_mysql_query_digest,则第二个表将被填充为来自第一个表的副本
总的来说,更新内容具有以下效果:
- 在测试工作负载上,增加 10% 的内存使用量
- 大大减少对内存管理的调用
- stats_mysql_query_digest_reset 快 3 倍
- _server_host 被指定为 MySQL 连接选项的一部分
- ProxySQL 2.0.6 现在运行在 Azure 上
- 添加变量 mysql-azure_enabled
修复 bug:
- 修复了 Eventlog_Reader_sample.cpp 中的内存泄漏
- 修复了中断执行准备好的语句可能导致崩溃的错误
- 修复了更改自动提交中的挂起
- 修复了各种编译器警告
- 修复了当多个语句中的多个 OK 数据包会导致关闭连接时的错误
- 禁用 Session_MySQL 以外的任何客户端的节流
- 在 Admin 中对 sqlite3_prepare_v2 的所有调用创建一个包装器
- 禁用多路复用时,ProxySQL 没有发送 com_ping
- 如果出现错误 1317,请不要关闭后端连接
详情见发布说明:
https://github.com/sysown/proxysql/releases
下载地址:
https://percona.com/downloads/proxysql2