gpt4 book ai didi

java - cassandra UTF8 或 LongType 中的 key 验证类类型?

转载 作者:搜寻专家 更新时间:2023-11-01 01:26:35 25 4
gpt4 key购买 nike

使用 cassandra,我想在列族中存储超过 2000 万行键。

我的问题是:

  1. long 和 utf8 rowKey 键之间是否存在真正的性能差异?

  2. 任何行键存储大小问题?

我的用户 key 是这样的

rowKey=>112512462152451
rowKey=>135431354354343
rowKey=>145646546546463
rowKey=>154354354354354
rowKey=>156454343435435
rowKey=>154435435435745

最佳答案

  1. Cassandra 将磁盘上的所有数据(包括行键值)存储为十六进制字节数组。就性能而言,行键的数据类型真的无关紧要。唯一重要的地方是行键的类型 validator/比较器将影响磁盘上的排序顺序。因此,在您的情况下,Long 的排序方式(数字)与 UTF8(ascii-betical)不同。

  2. 我找不到这方面的确切来源,但我记得读过行键的最大大小为 64K(而你似乎远低于此)。默认情况下启用 key 缓存,除非另有说明,否则将缓存 200,000 个 key 。在任何给定时间缓存 200,000 个 key 是否足够,取决于您的应用程序的要求。您可以根据可用 RAM 的数量增加它,但您应该以小的增量调整来测试它。

查看 Datastax 文档以获取有关 how to tune the row and key cache properties 的说明.

还有 eBay posted a good article on Cassandra data modeling讨论了可能对您也有帮助的正确的行键选择/创建。

关于java - cassandra UTF8 或 LongType 中的 key 验证类类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21360688/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com