我正在尝试增加从ETL软件包到CloudSQL (谷歌上的MySQL)的插入的吞吐量。可以使用ODBC或JDBC驱动程序建立连接。
本地数据库的正常吞吐量为每秒5-10k插入行,但对于CloudSQL,吞吐量似乎小于100。问题似乎是调用的延迟,正在处理单个插入。
我看过MYSQL驱动程序文档,有multi_statement
和auto_commit
这样的选项,它们暗示允许每次调用多个语句并增加吞吐量。
对于使用ODBC或JDBC,特别是从本地连接到云时,有什么指导原则吗?
发布于 2018-01-23 04:59:04
要提高吞吐量,您应该首先确定瓶颈是什么。以下是一些可能性:
通过将ping的结果与Cloud SQL和您之前的服务器进行比较来测试往返时间(对于Cloud SQL第一代,请使用SELECT 1;
的速度,因为ping在到达真正的服务器之前就在谷歌内部终止了。)通过查看客户端的代码或MySQL查询log.
通过进行速度测试来测试这一点,并查看可用的速度是否低于您希望的for.
通过在Stackdriver Monitoring.
为此,可以使用iostat
查看历史磁盘使用情况,或使用hdparm -t
测试disk throughput.
https://stackoverflow.com/questions/48355504
复制相似问题