Firebase 实时数据库:通过选择短路径名来节省成本?
Firebase Realtime Database: Save costs by choosing short path names?
与 Firestore 相比,Firebase RTDB 成本是按下载大小(而不是操作次数)计算的。
当您获取数据时,就像在这个伪代码 database.child(path1).child(path2).getData()
中一样,它也会获取每个值的键(键值对)。还有每条路径,包括 path1
和 path2
。键值对中的键其实也只是路径
定价的下载大小是否考虑了这些路径?
我的目标是:
假设你加载了 100 万个这样的键值对:每个值都是一个布尔值。但是每个键都是一个200个字符的长字符串。
如果键是 10 个字符长的字符串,会不会更便宜?
由于路径名是从服务器发送到客户端的,因此使用较长的路径名会产生一定的成本。而且我肯定见过他们使用 single-character 键名来降低成本的项目。
是否值得纯粹为了节省成本而选择较短的路径名,这只能由您自己决定。
还要考虑您的应用是否真的应该读取一百万个键值对。你真的要向用户展示所有这些吗?通常:将数据存储在靠近屏幕上显示给用户的位置,然后仅加载您在当前屏幕上显示的数据。
与 Firestore 相比,Firebase RTDB 成本是按下载大小(而不是操作次数)计算的。
当您获取数据时,就像在这个伪代码 database.child(path1).child(path2).getData()
中一样,它也会获取每个值的键(键值对)。还有每条路径,包括 path1
和 path2
。键值对中的键其实也只是路径
定价的下载大小是否考虑了这些路径?
我的目标是:
假设你加载了 100 万个这样的键值对:每个值都是一个布尔值。但是每个键都是一个200个字符的长字符串。
如果键是 10 个字符长的字符串,会不会更便宜?
由于路径名是从服务器发送到客户端的,因此使用较长的路径名会产生一定的成本。而且我肯定见过他们使用 single-character 键名来降低成本的项目。
是否值得纯粹为了节省成本而选择较短的路径名,这只能由您自己决定。
还要考虑您的应用是否真的应该读取一百万个键值对。你真的要向用户展示所有这些吗?通常:将数据存储在靠近屏幕上显示给用户的位置,然后仅加载您在当前屏幕上显示的数据。