以下是一些示例,可帮助您了解各种场景下 Firestore 企业版的定价。
查询价格示例
场景:某查询在包含 100 个文档的集合中,对值为 ilovefirebase 的字段 username 应用了过滤条件,其中每个文档的大小为 2KiB。假设只有一个值为 ilovefirebase 的 username。运行同一查询 100 万次。
| 活动 | 标准版(自动编制索引的查询) | 企业版(经过指数化处理的搜索查询量) | 企业版(未编入索引的集合扫描) |
| 索引编入状态 | 使用自动创建的索引进行用户名查找。 | 在用户名字段上手动创建索引后。 | 不使用索引;扫描整个 200KiB 用户集合。 |
| 每次查询的读取单位数 | 产生费用:1 次读取。 | 产生费用:2 个读取单位(1 个用于索引扫描,1 个用于文档读取)。 | 产生费用:50 个读取单位(100 个文档,每个文档 2KiB,总扫描量为 200KiB。200KiB / 每单位 4KiB = 50 个单位)。 |
| 总费用(每 100 万次查询) | 每 100 万次查询 $0.30(1 次读取 @ 每 100 万个读取单位 $0.30)。 | 每 100 万次查询 $0.10(2 个读取单位,每个读取单位 $0.05/100 万个读取单位)。 | 每 100 万次查询 $2.50(50 个读取单位,每个读取单位 $0.05/100 万)。 |
费用差额摘要
- 编入索引的查询:在企业版上,如果手动为“用户名”字段创建索引,则同一查询的费用为每百万次查询 $0.10。
- 未编制索引的集合扫描查询:在企业版中,未索引的集合扫描查询费用为每百万次 $2.50,远高于标准版中等效的自动索引读取操作的费用 ($0.30)。这表明,在没有索引的情况下进行查询可能会导致执行效率低下且开销巨大。
- 费用优势:每百万个读取单位 $0.10 的价格比标准版的索引读取费用便宜三倍。这表明,在查询经过优化后,企业版读取单元的基准价格较低。
实时价格示例
如需详细了解价格,请参阅实时价格。
场景 1:100 万个客户端查询集合中最新的 10 篇帖子(按时间戳编制索引)。每篇帖子的大小为 6KiB。随后,其中两篇帖子会更新,导致实时更新被推送到客户端。
| 活动 | Firestore 标准版 | Firestore 企业版 | 价格亮点 |
| 价格模式 | 初始查询和实时更新均按文档读取次数收费。 | 初始查询按读取单位(4 KiB 分批)收费。 实时更新使用单独的实时更新 SKU。 |
企业版利用读取单位定价,使初始读取成本更低 |
| 首次读取(初始同步 10 篇帖子,每篇帖子包含 6KiB 文档) | 每个客户端会产生 10 次读取(文档大小无关紧要)。 | 每个客户端会产生 21 个读取单位 (1 个读取单位用于 10 篇帖子的索引扫描) (20 个读取单位:每个 6KiB 文档 2 个读取单位 * 10 个文档) |
企业版消耗的单位数更多(21 个,而个人版为 10 个),但单位价格却低得多。 |
| 首次读取费用(每 100 万个客户端) | 10 次读取 * 100 万个客户端 @ $0.30/百万次读取:$3.00。 | 21 个读取单位 * 100 万个客户端 @ $0.05/百万个读取单位:$1.05。 | 企业版中的初始读取费用比标准版便宜 4 倍。 |
| 实时更新(对 2 个 6KiB 文档的更新) | 产生 2 次读取(2 个更新的文档)。 | 产生 4 个实时更新单元(每个 6KiB 文档 2 个实时更新单元 * 2 次实时更新)。 | 企业版将实时更新分离到专用 SKU 中。 |
| 实时费用(每 100 万个客户端) | 2 次读取 * 100 万个客户端 @ $0.30/百万次读取:$0.60。 | 4 个实时更新单位 * 100 万个客户端 @ $0.30/百万个实时更新单位:$1.20。 | 在此特定更新方案中,企业版的实时费用更高。 |
| 总费用 | $3.60 ($3.00 +$ $0.60)。 | $2.25 ($1.05 + $1.20)。 | 在此涉及大型文档 (6KiB) 和高容量的场景中,企业版更便宜($2.25 对比 $3.60)。 |
企业版实时收听查询的其他定价示例
为便于说明,以下场景中的费用是根据 us-central1 区域的费率计算的,即每百万个读取单位 $0.05,每百万个实时更新单位 $0.30。
| 场景(客户端、文档大小) | 第 1 阶段:初始查询(同步)详细信息 | 第 1 阶段:初始查询消耗 | 示例费用 | 第 2 阶段:实时更新详情 | 第 2 阶段:实时更新消耗 | 示例费用 |
| 1 个客户端,2KiB 文档 | 查询对 10,000 个连续文档(每个文档 2KiB)执行未编制索引的集合扫描。 | 5,000 个读取单位 | $0.00025(根据 $0.05/百万次计算得出) | 客户端通过实时更新接收 1,000 个文档,每个文档的大小为 2 KiB。 | 1,000 个实时更新单位 | $0.003(根据 $0.30/百万次计算得出) |
| 1,000 个客户端,2KiB 文档 | 1,000 个客户端各自运行一个查询,该查询对 10,000 个连续文档(每个文档 2KiB)执行未编制索引的集合扫描。 | 500 万个读取单位 | $0.25(按 $0.05/百万次计算) | 1,000 个客户端各自通过实时更新接收 1,000 个文档,每个文档的大小为 2KiB。 | 100 万个实时更新单位 | $0.30(根据 $0.30 /百万次计算得出) |
| 1,000 个客户端,6KiB 文档 | 1,000 个客户端各自运行一个查询,该查询对 10,000 个连续文档(每个文档 6KiB)执行未编制索引的集合扫描。 | 1,500 万个读取单位 | $0.75(按 $0.05/百万次计算) | 1,000 个客户端各自通过实时更新接收 1,000 个文档,每个文档的大小为 6KiB。 | 200 万个实时更新单元 | $0.60(根据 $0.30/百万计算得出) |