ProxySQL源码之SQL执行时间的计算

ProxySQL中使用了MariaDB的Client API.对后端mysql的请求都是异步的(KILL QUERY/CONNECTION 命令除外,因为这个操作ProxySQL是启动了一个线程来执行的,没有必要再使用异步了),也就是说一个SQL发送给后端mysql,ProxySQL的session

ProxySQL源码之query digest text的生成

我们知道ProxySQL对每条SQL的执行都有统计功能,其统计信息位于stats库表stats_mysql_query_digest中。针对每条SQL,ProxySQL会计算其digest, 以及digest_text,并在该表记录它的执行信息,如最大执行时间,最小执行执行时间,执行频次等。但这些功

ProxySQL 白名单与黑名单

ProxySQL支持白名单(white list)和黑名单(black list), 其支持方式还是通过路由规则来实现的。它强悍的路由功能似乎无所不能啊!但这种方式并不能阻止用户连接,只是阻止任何的查询! 黑名单 对黑名单的支持很简单,比如我们想禁止某个IP访问只需在mysql_query_rul

ProxySQL的链式路由

ProxySQL 支持链式路由规则,具体来说是,匹配完一条规则后,再接着匹配指定的其它规则。链式路由指定方式是通过mysql_query_rules表中的两个字段来实现的:flagOUT, flagIN,官方的解释很绕,看了几遍,模模糊糊不能明了,也许是语言方面的障碍吧: lagIN, flagO

ProxySQL源码分析之Admin historical statistics

自从ProxySQL1.4.4, 开始将历史metric信息存入新的数据库proxysql_stats.db. 这些信息主要包括connection_pool,connection,query_cache,system_cpu,system_memory这几部分。在上一篇文章:ProxySQL-Do

ProxySQL集群中节点配置快速同步

ProxySQL 集群中节点间配置如何快速同步,减少繁琐的切换节点敲击命令?一种方法是使用其自带的Cluster模块,该模块经过测试基本可用,即使不同步也不会带来大的问题,只需通过监控发现后,手工处理一下即可;另一种方法是直接传输proxysql.db数据库文件到另一个节点,然后执行load… to

ProxySQL常用命令总结

ProxySQL使用三层存储来管理配置,这使得配置修改生效非常灵活,上层应用毫无感知。配置管理的相关命令相信我们都很熟悉了。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 LOAD MYSQL USERS TO RUNTIME; SAVE MYSQL USERS TO DIS

ProxySQL Docker化部署共享数据目录

今天突然有这样一个想法,proxy SQL docker化部署,data目录当然要外挂,可否启用多个docker容器,共用一个数据目录呢?这样能否达到一个集群的效果呢?带着这个想法做了一些尝试。 docker 镜像的entry point 使用front进程启动proxysql,这样不会生产pid

InnoDB事务隔离级别的实现

SQL标准中定义了四种隔离级别:未提交读(read uncommitted),提交读(read committed),重复读(repeatable read),串行读(serializable),任何一款数据库都应遵照SQL标准实现这些隔离级别(虽然有一些例外,因为数据厂商都有一些私有的标准。如Or

MySQL filesort 算法探秘

filesort直接影响SQL的执行效率,使导致慢查询的罪魁祸首。无论从研发人员还是DBA都有必要对这一元凶加深理解。今天我花了些时间研究了下官方文档,写一片总结加深理解。 MySQL 针对filesort实现了三种算法,这三种算法可以说是在一种算法上针对不同使用场景的改进,以至于它们都没有一个正

Categories

Tags

Links

bohr