gpt4 book ai didi

MySQL 驱动程序配置以增加 CloudSQL 的吞吐量

转载 作者:行者123 更新时间:2023-11-29 18:00:53 25 4
gpt4 key购买 nike

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

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

我查看了 MYSQL 驱动程序文档,其中有诸如 multi_statementauto_commit 之类的选项,它们暗示允许每次调用多个语句并提高吞吐量。

是否有关于使用 ODBC 或 JDBC 的任何指南,特别是从本地连接到云时?

最佳答案

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

  • 延迟限制。当大部分时间花费在等待数据从客户端到服务器时,就会出现这种情况。如果 a) 您的客户端到服务器的往返时间很长和/或 b) 您的客户端连续进行大量小写入,则可能会出现这种情况。

    通过比较 Cloud SQL 和您之前的服务器的 ping 结果来测试往返时间(对于 Cloud SQL 第一代,请使用 SELECT 1; 的速度,因为 ping 在在到达真正的服务器之前,请先 Google 一下。)通过查看其代码或 MySQL 查询日志,了解您的客户端是否进行了大量小写入。

  • 带宽限制。如果您的客户端和服务器之间的带宽链接较小,就会出现这种情况。

    通过进行速度测试来测试这一点,并查看可用速度是否低于您希望的有效数据速率。

  • 服务器 io 绑定(bind)。当您配置了具有低层或小磁盘(第二代)的 Cloud SQL 实例时,就会出现这种情况。

    通过在 Stackdriver Monitoring 中查看 Cloud SQL 实例的指标来对此进行测试。

  • 客户端 io 绑定(bind)。当您的客户端无法足够快地发送数据时就会出现这种情况。如果您使用与本地测试相同的源,则这种情况不太可能发生。

    通过使用 iostat 查看历史磁盘使用情况或使用 hdparm -t 测试磁盘吞吐量来对此进行测试。

  • 索引过多。每个附加索引都会使写入速度变慢。确保您在 Cloud SQL 和本地部署上使用相同的架构,以便进行公平测试。

关于MySQL 驱动程序配置以增加 CloudSQL 的吞吐量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48355504/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com