跳转到内容
搜索文档

常见问题

最后更新 查看 MarkdownAgent 设置

以下是关于 Hyperdrive 最常见问题的解答。

连接

Hyperdrive 是否使用特定 IP 地址连接我的数据库?

Hyperdrive 使用 Cloudflare IP 地址范围 连接数据库。这些范围由所有 Hyperdrive 配置和其他 Cloudflare 产品共享。

可在数据库防火墙中配置限制,仅允许特定 IP 地址访问数据库。

Hyperdrive 是否支持连接 D1 数据库?

Hyperdrive 不支持 D1,因为 D1 设计上已为 Workers 提供快速连接。

Hyperdrive 旨在加速对传统区域 SQL 数据库(如 PostgreSQL)的访问。这些数据库通常通过 TCP/IP 通信的数据库驱动访问。 与 D1 不同,连接到传统 SQL 数据库的安全连接需要在客户端(Worker)与数据库服务器之间多次往返。 有关为何需要往返以及 Hyperdrive 如何解决,请参阅 Hyperdrive 工作原理

D1 创建数据库连接不需要往返。D1 设计上默认为 Workers 提供高性能访问,无需 Hyperdrive。

是否应配合 Hyperdrive 使用 Placement?

是的,若 Worker 每次请求执行多次查询。Placement 使 Worker 靠近数据库运行,将每次查询延迟从 20-30ms 降至 1-3ms。Hyperdrive 处理连接池和建立。Placement 缩短查询执行的网络距离。

若数据库运行在 AWS、GCP 或 Azure,使用 placement.region。其他托管数据库使用 placement.host

缓存

写入数据库时 Hyperdrive 是否会使缓存的读失效

不会。应用写入数据库时,Hyperdrive 不会使已缓存的读查询结果失效。匹配的读操作可能返回缓存结果,直到配置的 max_age 过期,Hyperdrive 还可在 stale_while_revalidate 窗口内提供该结果并在后台刷新缓存。

对必须返回最新数据的读操作(如认证、会话、权限或写入后立即读),使用禁用缓存的 Hyperdrive 配置。请参阅查询缓存选择缓存策略。

若部分读需要写后读一致性,是否仍可使用 Hyperdrive

可以。为同一数据库配置两个 Hyperdrive 绑定:一个启用查询缓存,用于可容忍短暂 stale 的读;一个禁用查询缓存,用于必须最新的读。禁用缓存的绑定仍提供 Hyperdrive 的连接池和快速连接建立。

若对象关系映射(ORM)库或认证库拥有 SQL,为每个绑定创建独立的数据库客户端,将禁用缓存的客户端传给需要最新读的代码。

定价

Hyperdrive 是否对数据传输/出站流量收费?

不会。

Hyperdrive 是否在 Workers Free 套餐可用?

是的。请参阅定价

Hyperdrive 是否对额外计算收费?

Hyperdrive 本身不对计算(CPU)或处理(挂钟)时间收费。通过 Hyperdrive 查询并计算结果的 Workers(例如将结果序列化为 JSON 和/或发出查询)按 Workers 定价 计费。

限制

Hyperdrive 是否有任何限制?

请参阅已发布的限制文档。

这篇文档对您有帮助吗?