【问题标题】:storing as integer vs string size存储为整数与字符串大小
【发布时间】:2021-03-17 09:16:55
【问题描述】:

我检查了Docs,但我有点困惑。存储长整数时,例如265628143862153200。将其存储为整数字符串会更有效吗?

这是我需要帮助的,下面的计算是否正确?

整数:

265628143862153200 *8 的长度?

字符串:

265628143862153200+1 的长度?

【问题讨论】:

  • 为什么要将数字存储为字符串?如果你这样做了,你就失去了把它当作一个数字来处理范围查询和排序等事情的能力。失去这种能力似乎不值得节省几个字节。
  • 除大小之外的一个主要原因,当将303069538315010058 存储为数字时,它是303069538315010050,您可以看到最后一位丢失了。这仅在 GUI 中,因此如果非技术管理员手动查看数据,结果将不一样。
  • 此外,当使用 GUI(网站)附加整数时,会将所有先前的元素转换为浮点数。这使他们丢失了一些数字 +- 10 对于我发现的内容。

标签: firebase google-cloud-firestore


【解决方案1】:

Firebase 控制台不属于管理工作流程的一部分。它只是为了发现和发展。如果您有生产级程序要遵循,您应该只使用提供的 SDK 编写代码。通常,开发人员会创建自己的管理站点来处理 Firesotre 中的数据。

此外,您应该知道 JavaScript 整数是 not "big" enough 以存储 Firestore 提供的完整大小的数据。如果要使用数字字段的完整大小,则必须使用支持 Firestore 的完整 64 位有符号整数类型的系统。

如果您必须存储大于任一限制的数字,并且能够手动修改它们,请考虑存储多个数字,类似于 Firestore 的时间戳将秒和纳秒存储为单独数字的方式,以便完整值可以溢出更大比有符号的 64 位。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-26
    • 2011-03-28
    • 1970-01-01
    • 2016-12-06
    • 1970-01-01
    • 2017-01-01
    • 1970-01-01
    相关资源
    最近更新 更多