mysql 扩大缓存_使用ProxySQL查询缓存进行扩展

已知Mysql Query Cache 不能进行很好的扩展。我找到的关于 Mysql Query Cache 不能很好扩展的基准测试 是 Szymon Komendera(亚马逊极光(Amazon Aurora)数据库工程师) 发表的博客(需要×××)。在博客中,带有4GB 查询缓存的Aurora  能提升MySQL性能达3.1倍(此处为Aurora QC 与 Mysql QC的对比) 。

我将按照同样的方法进行基准测试,观察用MySQL Query Cache能否得到相似的结果并且观察Proxy Query Cache能提升多少性能。

初始化设置2个带有sysbench 0.5的客户端。

使用两个客户端的原因:在目前硬件的条件下,一个客户端不能生成足够的流量,使Proxy Query Cache 到达极限。

sysbench命令:./sysbench --num-threads=512 --max-time=900 --max-requests=0

--test=./tests/db/oltp.lua

--mysql-user=sbtest

--mysql-password=sbtest

--mysql-host=10.1.1.22

--oltp-table-size=10000000

--mysql-port=${PORT}

--mysql-ps-mode=disable

--oltp-read-only=on

--oltp-point-selects=25

--oltp-skip-trx=on

--oltp-sum-ranges=0

--oltp-simple-ranges=0

--oltp-distinct-ranges=0

--oltp-order-ranges=0

--oltp-dist-type=uniform run1个mysql数据库(Percona Server 5.6.25) 和 proxysql(1.4.0)

在整个测试过程中,所有的数据已经缓存在InnoDB buffer pool (在内存中,没有涉及IO),测试前重置Query Cache。

70684b1ba8f23c04c94d305f884da866.png

上图的结果表明,mysql QC确实无法扩展,并且使用它能导致性能下降84%。另一方面,ProxySQL QC 提升性能3.3倍

另一个有趣的结果是,根据测试时长不同得到的不同结果。

使用Mysql QC,基准测试时间越长,吞吐量越低(明显降低)。

使用ProxySQL QC,吞吐量没有下降,但1%的提升考虑是波动导致的。

上述结果需要注意的是:这个环境下可以生成一千万条不同的SELECT 语句,因此Query Cache中有一千万条目,因为表的大小有一千万。

较小的 --oltp-table-size 将导致 MySQL no QC 和 ProxySQL QC 有更高的结果。事实上,出于好奇,使用 --oltp-table-size=1000000一个单实例ProxySQL 可以返回超过一百万的QPS。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值