最佳做法

本页面介绍了一些最佳做法,遵循这些做法可从 Cloud SQL 获得最佳的性能、耐用性和可用性。

如果您的 Cloud SQL 实例出现问题,请在排查问题时查看以下内容:

实例配置和管理

最佳做法 更多信息
操作指南 虽然尚未提供 SQL Server 实例的操作指南,但一般性原则同样适用于 SQL Server 实例,以确保您的实例属于 Cloud SQL 服务等级协议 (SLA) 的涵盖范围内。
为主实例配置维护期,以控制执行中断性更新的时间。 请参阅维护期
如果您定期删除并重新创建实例,请在实例 ID 中使用时间戳以增加新实例 ID 可用的可能性。 删除实例后的几天内,您不能再次使用已删除的实例的 ID。
在先前操作完成之前,请勿启动管理操作。

Cloud SQL 实例在完成先前的操作之前不接受新的操作请求。如果您试图提前启动新操作,则操作请求将失败。这也包括实例重启在内。

Cloud Console 中的实例状态不会反映操作是否正在运行。绿色对勾标记仅表示实例处于 RUNNABLE 状态。如需查看操作是否正在运行,请转到操作标签页,然后检查最近操作的状态。

数据架构

最佳做法 更多信息
尽可能将实例分片。 如果可能,使用多个较小的 Cloud SQL 实例要优于使用一个大型实例。 管理单个大型实例时,会遇到管理许多较小实例不会发生的难题。
请勿使用太多的数据库表。

太多数据库表可能会影响实例响应时间。超过 10000 个表将影响您的服务等级协议 (SLA) 覆盖范围。如需了解详情,请参阅操作指南

虽然尚未提供 SQL Server 实例的操作指南,但一般性原则同样适用于 SQL Server 实例。

应用实现

最佳做法 更多信息
采用最佳连接管理做法,例如连接池和指数退避算法。 使用这些方法将改善应用对资源的使用,并帮助您保持在 Cloud SQL 连接限制内。如需了解详情和代码示例,请参阅管理数据库连接
测试应用对维护更新的响应情况,这可能在维护期间随时发生。 更改实例的机器类型是最近似于维护更新的情形。确保应用会尝试重新连接到数据库,最好使用指数退避算法至少 10 分钟,以确保应用在维护事件后继续运行。如需了解详情,请参阅管理数据库连接
测试应用对故障转移的响应情况,这可能随时发生。 您可以使用 Cloud Console、gcloud 命令行工具或 API 手动启动故障转移。请参阅启动故障转移
避免大型事务。 保持事务小而简短。如果需要进行大型数据库更新,将其分为几个较小的事务执行,而不是通过一个大型事务。
如果您使用的是 Cloud SQL Auth 代理,请确保使用最新版本。 请参阅保持 Cloud SQL Auth 代理为最新版本

数据导入和导出

最佳做法 更多信息
加快小型实例的导入。 对于小型实例,您可以临时增加实例的 CPU 和 RAM,以提高导入大型数据集时的性能。
如果您要导出数据以导入到 Cloud SQL 中,请务必采用正确的过程。 请参阅从外部代管式数据库服务器导出数据

备份与恢复

最佳做法 更多信息
使用适当的 Cloud SQL 功能保护您的数据。

备份和导出是提供数据冗余和保护的方法。它们各自防范不同的情形,并在强大的数据保护策略中相互补充。

备份属于轻量级;通过备份,可以将实例上的数据恢复到进行备份时的状态。但是,备份也存在一些限制。如果您删除实例,备份也会被删除。您无法备份单个数据库或表。并且如果实例所在的区域不可用,则无法通过对应备份恢复实例,即使在可用区域中也不行。

导出需要较长时间才能创建,因为在 Cloud Storage 中创建了可用于重新创建数据的外部文件。如果您删除实例,导出不会受影响。此外,您可以只导出单个数据库甚至表,具体取决于您选择的导出格式。