我正在为由Amazon RDS上运行的MySQL数据库提供支持的应用程序升级/select资源。 我正在考虑引入只读副本和一些其他策略,以在日益繁重的负载下提高可用性。 (这本书中最古老的故事。)因此,我一直在监视我的数据库服务器,并试图弄清瓶颈在哪里等等,而且我得到了一些关于读/写比率的非常矛盾的信息:
首先,我会说,与许多其他types的应用程序相比,我的应用程序相对而言比较重要。 我知道这一点。
在AWS RSD控制面板中使用云监视,我通常会看到以下指标:
读操作写操作比例: 1 : 20 (每20次写入一次)
吞吐量和延迟的读写比例通常与该比率一致。
这对我来说似乎是完全荒谬的。 我无法想象如何或为什么我的应用程序会做更多的写入比读取。
因此,我开始寻求第二种意见,即通过MySQL Work Bench Administration Dashboard实时监控我的数据库。 在那里,证据是不同的。 我平均看到以下内容:
读取查询执行到写入查询执行: 6:1 (6次读取执行每执行1个写入查询执行的查询)
这些监控工具中的任何一个都是非常不准确的,或者我对数据有一个根本性的误解。
在问题上:
为什么这两个工具会显示如此不同的结果呢?
有没有更好的方法来准确地确定我的数据库的有效读写比例,以便我可以做出谨慎的缩放决策?
读取/写入操作 !=读取/写入查询 。
一个“写入”查询可能会导致多个磁盘IO写入操作,具体取决于查询的性质,您正在使用的引擎,您拥有的索引等等。