了解 D1 中存储数据的位置如何确定,包括数据库的运行位置以及如何根据需求优化该位置。
默认情况下,D1 会在靠近您发出创建数据库请求的位置自动创建主数据库实例。在大多数情况下,这使 D1 能够为您选择最优的数据库位置。
管辖区域(Jurisdictions)用于创建仅在特定区域内运行和存储数据的 D1 数据库,以帮助遵守 GDPR ↗ 或 FedRAMP ↗ 等数据本地化法规。
Workers 仍可从全球任意位置访问受管辖区域约束的数据库。管辖区域约束仅控制数据库本身的运行和数据持久化位置。考虑使用 Regional Services 来控制 Cloudflare 响应请求的区域。
| 参数 | 位置 |
|---|---|
| eu | 欧盟 |
| fedramp | 符合 FedRAMP 要求的数据中心 |
-
在 Cloudflare 仪表板中,前往 D1 SQL Database(D1 SQL 数据库) 页面。
Go to D1 SQL database ↗ -
选择 Create Database(创建数据库)。
-
在 Data location(数据位置) 下,选择 Specify jurisdiction(指定管辖区域),并从列表中选择管辖区域。
-
选择 Create(创建) 创建数据库。
npx wrangler@latest d1 create db-with-jurisdiction --jurisdiction=eucurl -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 d1创建数据库。 - 通过 Cloudflare 仪表板 ↗ 创建数据库。
创建新数据库时提供位置提示,请使用 --location 标志并传入有效的位置提示:
wrangler d1 create new-database --location=weur通过仪表板创建数据库时提供位置提示:
-
在 Cloudflare 仪表板中,前往 D1 SQL Database(D1 SQL 数据库) 页面。
Go to D1 SQL database ↗ -
选择 Create database(创建数据库)。
-
提供数据库名称和可选的 Location。
-
选择 Create(创建) 创建数据库。
D1 支持以下位置提示:
| 提示 | 提示说明 |
|---|---|
| wnam | 北美西部 |
| enam | 北美东部 |
| weur | 欧洲西部 |
| eeur | 欧洲东部 |
| apac | 亚太地区 |
| oc | 大洋洲 |
启用读复制后,D1 会在全球创建并分发主数据库实例的只读副本。这降低了距离主数据库实例较远的用户的查询延迟。
使用 D1 读复制时,D1 会在每个可用区域自动创建读副本,包括主数据库实例所在的区域。
如果配置了管辖区域,读副本仅在创建数据库时设置的管辖区域内创建。
请参阅 D1 读复制 了解更多信息。