跳转到内容
搜索文档

数据位置

最后更新 查看 MarkdownAgent 设置

了解 D1 中存储数据的位置如何确定,包括数据库的运行位置以及如何根据需求优化该位置。

自动(推荐)

默认情况下,D1 会在靠近您发出创建数据库请求的位置自动创建主数据库实例。在大多数情况下,这使 D1 能够为您选择最优的数据库位置。

将数据库限制在管辖区域内

管辖区域(Jurisdictions)用于创建仅在特定区域内运行和存储数据的 D1 数据库,以帮助遵守 GDPRFedRAMP 等数据本地化法规。

Workers 仍可从全球任意位置访问受管辖区域约束的数据库。管辖区域约束仅控制数据库本身的运行和数据持久化位置。考虑使用 Regional Services 来控制 Cloudflare 响应请求的区域。

支持的管辖区域

参数 位置
eu 欧盟
fedramp 符合 FedRAMP 要求的数据中心

使用仪表板

  1. 在 Cloudflare 仪表板中,前往 D1 SQL Database(D1 SQL 数据库) 页面。

    Go to D1 SQL database ↗
  2. 选择 Create Database(创建数据库)

  3. Data location(数据位置) 下,选择 Specify jurisdiction(指定管辖区域),并从列表中选择管辖区域。

  4. 选择 Create(创建) 创建数据库。

使用 wrangler

npx wrangler@latest d1 create db-with-jurisdiction --jurisdiction=eu

使用 REST API

curl -X POST "https://api.cloudflare.com/client/v4/accounts/<account_id>/d1/database" \
     -H "Authorization: Bearer $TOKENn" \
     -H "Content-Type: application/json" \
     --data '{"name": "db-with-jurisdiction", "jurisdiction": "eu" }'

提供位置提示

位置提示(Location hint)是一个可选参数,用于指明您希望主数据库实例所在的地理区域。

当对特定数据库的大多数写入来自与创建数据库位置不同的区域时,您可能希望显式提供位置提示。位置提示在以下情况下很有用:

  • 分布式团队协作。
  • 为特定地区的用户创建专用数据库。
  • 使用持续部署(CD)或基础设施即代码(IaC)系统以编程方式创建数据库。

在以下情况下创建 D1 数据库时可提供位置提示:

使用 wrangler

创建新数据库时提供位置提示,请使用 --location 标志并传入有效的位置提示:

wrangler d1 create new-database --location=weur

使用仪表板

通过仪表板创建数据库时提供位置提示:

  1. 在 Cloudflare 仪表板中,前往 D1 SQL Database(D1 SQL 数据库) 页面。

    Go to D1 SQL database ↗
  2. 选择 Create database(创建数据库)

  3. 提供数据库名称和可选的 Location

  4. 选择 Create(创建) 创建数据库。

可用位置提示

D1 支持以下位置提示:

提示 提示说明
wnam 北美西部
enam 北美东部
weur 欧洲西部
eeur 欧洲东部
apac 亚太地区
oc 大洋洲

读副本位置

启用读复制后,D1 会在全球创建并分发主数据库实例的只读副本。这降低了距离主数据库实例较远的用户的查询延迟。

使用 D1 读复制时,D1 会在每个可用区域自动创建读副本,包括主数据库实例所在的区域。

如果配置了管辖区域,读副本仅在创建数据库时设置的管辖区域内创建。

请参阅 D1 读复制 了解更多信息。

这篇文档对您有帮助吗?