首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >用于提高CloudSQL吞吐量的MySQL驱动程序配置

用于提高CloudSQL吞吐量的MySQL驱动程序配置
EN

Stack Overflow用户
提问于 2018-01-20 19:21:05
回答 1查看 78关注 0票数 0

我正在尝试增加从ETL软件包到CloudSQL (谷歌上的MySQL)的插入的吞吐量。可以使用ODBC或JDBC驱动程序建立连接。

本地数据库的正常吞吐量为每秒5-10k插入行,但对于CloudSQL,吞吐量似乎小于100。问题似乎是调用的延迟,正在处理单个插入。

我看过MYSQL驱动程序文档,有multi_statementauto_commit这样的选项,它们暗示允许每次调用多个语句并增加吞吐量。

对于使用ODBC或JDBC,特别是从本地连接到云时,有什么指导原则吗?

EN

回答 1

Stack Overflow用户

发布于 2018-01-23 04:59:04

要提高吞吐量,您应该首先确定瓶颈是什么。以下是一些可能性:

  • latency-bound.当大部分时间都花在等待数据从客户端传输到服务器上时,就会出现这种情况。如果a)您的客户端与服务器之间的往返时间很长,和/或b)您的客户端连续执行大量小型写操作,则可能会出现这种情况。

通过将ping的结果与Cloud SQL和您之前的服务器进行比较来测试往返时间(对于Cloud SQL第一代,请使用SELECT 1;的速度,因为ping在到达真正的服务器之前就在谷歌内部终止了。)通过查看客户端的代码或MySQL查询log.

  • bandwidth-bound.,了解客户端是否进行了大量的小写操作如果您的客户端和服务器之间只有很小的带宽链路,就是这种情况。

通过进行速度测试来测试这一点,并查看可用的速度是否低于您希望的for.

  • server io-bound的有效数据速率。当您配置了低层或小磁盘(第二代)的云SQL实例时,就会出现这种情况。

通过在Stackdriver Monitoring.

  • client io-bound中查看您的Cloud SQL实例的指标来测试这一点。当您的客户端无法足够快地发送数据时,就会出现这种情况。如果您使用与本地测试相同的源代码,这是不太可能的。

为此,可以使用iostat查看历史磁盘使用情况,或使用hdparm -t测试disk throughput.

  • excessive indexing。每个额外的索引都会使写入速度变慢。确保您在云端SQL和本地端上使用相同的架构,以进行公平测试。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48355504

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档