8 个线程并不多,在这个工作负载中也没有太多的争用,但我们可以看到差异很小。当然,分析每个事务/查询并将它们发送到不同的主机是有成本的。
04
—
OLTP 只读
这一次,我们再次运行 sysbench,但我们使用oltp_read_only.lua
脚本。再次使用 8 个线程和 3 次运行:
我们在这里看到了更大的区别,因为没有写入,一台机器可以轻松处理满载。因此,解析请求并将其发送到多个服务器的成本更高。当然,这只是因为单台服务器可以轻松地承担工作负载。如果我们有一个只读工作负载,那么我建议使用 MySQL Router 的只读端口:6447。
04
—
OLTP 只写
我们还使用脚本oltp_write_only.lua
测试了只写工作负载。再次 8 个线程和 3 次运行:
我们可以看到,差异很小,但差异的确存在。
05
—
更复杂的工作负载
使用更复杂且优化程度较低的工作负载,例如oltp_update_non_index.lua
,我们可以看到显著的差异。
06
—
结论
MySQL 8.2 的透明读/写分离是我们一直在等待的一个非常有趣的功能,它在性能方面的消耗非常低,它更加适合于查询模式稳定的应用,因为这样的应用会降低MySQL路由器解析SQL的成本。您真的应该测试一下,并将您的意见发送给我们。享受MySQL、MySQL路由器和所有集成解决方案(InnoDB ReplicaSet,InnoDB Cluster,InnoDB ClusterSet,InnoDB Read Replicas)。
07
—
投票
推荐一个数据库大佬的公众号:
《韩锋频道》公众号,致力于从第三方角度阐述数据库行业、产品、技术、运营等多方面观点。作者系数据库资深从业者,CCIA 常务理事,前 Oracle ACE,腾讯TVP,阿里云MVP,DBAPlus 等多家社群联合创始人或专家团成员。著有数据库相关著作《SQL优化最佳实践》、《数据库高效优化》。
欢迎加我的微信,拉你进数据库微信群👇