【发布时间】:2021-06-04 22:12:52
【问题描述】:
想知道在这两种方法之间在 Cassandra 中存储 boolean 的更好方法:
-
将其存储为具有单个字符的
text列。例如:“Y”或“N”。 -
使用
boolean列。例如:真或假
【问题讨论】:
-
我希望更多的人会问这个问题。那么我们可能会有更少的 UUID 实例存储为
strings。
想知道在这两种方法之间在 Cassandra 中存储 boolean 的更好方法:
将其存储为具有单个字符的 text 列。例如:“Y”或“N”。
使用boolean 列。例如:真或假
【问题讨论】:
strings。
两者都可以。
使用 CQL boolean 类型意味着您可以轻松地将其映射到应用所用语言编写的布尔类型。
另一方面,如果您的源不是布尔值,那么将其存储在 CQL text 类型中会更容易,因此您无需实现将 Y 转换为 true 和 N 的逻辑到您的应用中的false。
这真的归结为偏好。干杯!
【讨论】:
Cassandra 将所有数据存储为十六进制字节数组,所以 Erick 是对的,因为两者都可以使用。
我会说我会强烈推荐使用boolean类型,原因有两个:
boolean 占用 1 位,而“true”的 string 占用 4 个字节。这种差异在今天可能并不太令人担忧,但值得指出。string 会使您的应用程序不得不解释不同的值,例如“true”、“True”、“Y”、“y”、“yes”...等。这一切都意味着同样的事情。使用 boolean 可以消除任何歧义或无效数据的可能性。【讨论】: