![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
ProxySQL
文章平均质量分 76
勤径苦舟
书山有路勤为径,学海无涯苦作舟。
展开
-
ProxySQL--基础--7.2--基于SQL的读写分离(推荐)
mysql1主2从。原创 2023-12-15 14:33:24 · 90 阅读 · 0 评论 -
ProxySQL--基础--12--禁止多路路由
如果你的应用程序尝试要设置一个变量,而这可能会禁用multiplexing,如果这个设置语句能够写规则来匹配,可以创建一个筛选条件返回OK而无需去执行查询,这样就不会修改multiplexing当前的策略。如果执行PREPARE语句(该语句使用文本协议准备好语句,而不是二进制协议),将禁用multiplexing且不再启用。也就是说,在禁用multiplexing情况下,会将语句路由到同一个主机组中的同一个节点上。如果执行了GET_LOCK(),将一直禁用multiplexing,且永不再次启用。原创 2023-12-13 09:42:26 · 83 阅读 · 0 评论 -
ProxySQL--基础--11--链式规则
实现链式规则主要是这2个字段。原创 2023-12-13 09:42:19 · 78 阅读 · 0 评论 -
ProxySQL--基础--10--查询缓存功能
ProxySQL支持查询缓存的功能,可以将后端返回的结果集缓存在自己的内存中,在某查询的缓存条目被清理(例如过期)之前,前端再发起同样的查询语句,将直接从缓存中取数据并返回给前端。原创 2023-12-13 09:42:08 · 165 阅读 · 0 评论 -
ProxySQL--基础--09--SQL语句的重写规则
ProxySQL在收到前端发送来的SQL语句后,可以根据已定制的规则去匹配它,在根据规则去重写这个语句,然后再路由到后端去。原创 2023-12-12 19:51:47 · 129 阅读 · 0 评论 -
ProxySQL--基础--8.3--路由规则--读写分离方法论
本文只描述基于SQL语句路由的读写分离,不讨论通过 ip/port,client,username,schemaname 实现的读写分离。下面描述了ProxySQL能实现的常见读写分离类型。原创 2023-12-12 19:51:02 · 74 阅读 · 0 评论 -
ProxySQL--基础--8.2--路由规则--基于SQL语句路由
参数化↓这里将where条件语句中字段id的值进行了参数化,也就是上面的问号?。我们在客户端发起的SQL语句都是完整格式的语句,SQL优化引擎出于优化的目的,对于那些参数相同但参数值不同的查询语句,SQL语句认为这些是同类查询,同类查询的SQL语句不会重复去编译而增加额外的开销。对于那些参数相同、参数值不同的SQL语句,使用问号"?"去替换参数值,替换后返回的语句就是参数化的结果。是分析语句性能、定制路由规则指标的统计表。记录了每个参数化分类后的语句对应的统计数据,包括该类语句的 执行次数。原创 2023-12-12 19:49:56 · 174 阅读 · 0 评论 -
ProxySQL--基础--8.1--路由规则--介绍、基于端口(用户,schema)的路由
优点读写分离配置简单缺点必须在应用APP的代码中指定端口号修改端口号时,应用APP的代码也必须做出相应的修改MYSQL--架构--ProxySQL--03--库和表2、mysql_query_rules表和基于端口的配置是类似的。注意:在插入mysql user到表中时,就已经指定了默认的路由目标组,这是一个默认路由规则了。当成功匹配到mysql_query_rules中的规则时,这个默认目标就不再生效。所以,通过默认路由目标,也能简单地实现读写分离。原创 2023-12-12 19:48:51 · 102 阅读 · 0 评论 -
ProxySQL--基础--7.1--实现一个简单的读写分离(不推荐)
mysql1主2从。原创 2023-12-12 19:47:48 · 35 阅读 · 0 评论 -
ProxySQL--基础--06--线程、线程池、连接池
ProxySQL由多个模块组成,每个模块都有一个或多个线程去执行任务。例如,以下是刚启动ProxySQL时的进程情况,一个main进程,一个主线程,21个线程pstree。原创 2023-12-12 19:46:05 · 70 阅读 · 0 评论 -
ProxySQL--基础--05--多层配置系统
换句话说,该数据结构中的配置都是已生效的配置。由于已经存在磁盘数据库文件,这时ProxySQL会从磁盘数据库中读取几乎所有的配置(即使传统配置文件中配置了某项,也不会去解析),但有3项是必须从传统配置文件中读取的。以下场景启动ProxySQL时,都会从传统配置文件config file中读取配置加载到内存数据库,并自动load到runtime数据结构、save到磁盘数据库。注意:几乎所有配置都是在admin管理接口上修改的,这也是建议的配置方式。XXX表示要加载/保存的是哪类配置。原创 2023-12-12 19:45:23 · 73 阅读 · 0 评论 -
ProxySQL--基础--04--库和表
使用ProxySQL的Admin管理接口连上ProxySQL,可查看ProxySQL拥有的库。原创 2023-12-12 19:44:44 · 120 阅读 · 0 评论 -
ProxySQL--基础--3.2--用户--管理用户
该变量表示,内存数据库的mysql_users表中的明文密码,在load mysql users to runtime时,对明文密码进行hash加密,并保存到runtime数据结构中。所以,想要向ProxySQL中使用hash加密密码,可以先通过mysql的password()函数创建一个hash密码,然后copy到mysql_users表中。这个hash密码和mysql的password()的算法是一样的。这个时候,runtime数据结构中的密码是加密密码,而内存数据库中的密码是明文密码。原创 2023-12-12 19:44:09 · 333 阅读 · 0 评论 -
ProxySQL--基础--3.1--用户--admin管理接口
添加一个myuser:myuser的用户密码对。# 查看当前的普通账户# 新增普通账户:mystats:mystats# 使修改立即生效# 使修改永久保存到磁盘。原创 2023-12-12 19:42:20 · 184 阅读 · 0 评论 -
ProxySQL--基础--2.4--部署--管理MSYQL节点
添加MySQL节点监控后端MySQL节点添加 普通用户这3个步骤虽然需要操作的过程不多,但是涉及的内容还是比较多的。强烈建议将这3个表的所有字段都了解一遍。不仅如此,要熟练使用ProxySQL,还应该对main库中的表的各个字段都比较熟悉,至少要知道它们什么意思。# 连接到ProxySQL的管理接口# 将配置加载到RUNTIME,使其可以立马生效,并保存到disk。# 查看下各节点是否都是 ONLINE。原创 2023-12-12 19:41:26 · 146 阅读 · 0 评论 -
ProxySQL--基础--2.3--部署--准备测试环境--mysql1主2从
至此:M1 里面已经创建了一个用户:rep 123456,拥有所有库,所有表replication slave。Proxysql 机器 还需要安装mysql客户端。这里以M1S1为案例。原创 2023-12-12 19:39:38 · 77 阅读 · 0 评论 -
ProxySQL--基础--2.2--部署--管理ProxySQL命令
默认情况下,rpm安装的ProxySQL只提供了SysV风格的服务脚本/etc/init.d/proxysql。可通过该脚本管理ProxySQL的启动、停止等功能。原创 2023-12-12 19:37:54 · 103 阅读 · 0 评论 -
ProxySQL--基础--2.1--部署--单机RPM安装
启动后会监听以下两个默认端口。原创 2023-12-12 19:37:03 · 74 阅读 · 0 评论 -
ProxySQL--基础--01--介绍
1.1.2、官方github和手册1.1.3、percona ProxySQL手册1.1.4、中文手册(一个大佬翻译的)1.2、版本官方版:是我们环境部署的版本percona版:是在官方版的基础上修改的,添加了几个比较实用的工具1.3、功能1.3.1、读/写分离支持多种方式基于schema和与语句级的规则,可以实现简单的sharding虽然ProxySQL的缓存策略比较简陋,但实现了基本的缓存功能,绝大多数时候也够用了。ProxySQL可以监控后端节点的多个指标,包括:资料来源2原创 2023-12-12 19:36:14 · 179 阅读 · 0 评论