database-design - QuestDb 中的 Symbol 列是什么?

标签 database-design questdb

我正在尝试 QuestDb,它有 Symbol column类型。 据我了解,存储很少更改的小字符串值很有用。在什么情况下最好对字符串使用单独的表并使用整数键?我的简化架构是 2 个表:

工具:ISIN、姓名

价格:ISIN、价格值、日期

仪器有限,但随着时间的推移可以增加到 100 万条记录。我应该在价格中使用 ISIN 的符号列还是更好地创建整数工具 ID 并引用它?

最佳答案

内部符号已存储为单独的表。尽管表似乎在内部列中显示符号列的字符串值 存储 32 位 int。对于财务案例,ISIN 和其他股票代码应始终是符号。 符号针对股票查询进行了优化,例如下面的符号用于选择一天的整个时间序列

select isin, ... from tab where isin = 'GB00BH4HKS39' and ts = '2021-01'

股票代码聚合:

select isin, sum(volume) from tab where ts = '2021-01'

不使用符号类型的情况是当您的数据集的字段有太多不同的值时。我会量化 “太多”超过 100,000 个值。此时,必须将 String 解析为 Int 或反之亦然的代码的性能开始 逐渐减少。

关于database-design - QuestDb 中的 Symbol 列是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65626576/

相关文章:

mysql - 重新设计数据库时应选择哪种选择(体育统计,比赛,地理范围)?

questdb - 恢复 QuestDB 备份

node.js - QuestDB 有 NPM 包吗?

postgresql - 在Rust中将时间戳吸收到postgres时,如何避免字符串转换?

database - 我无法规范化我的产品表,因为我有 4 种不同的产品类型

database - 如何为我的数据库设计一个可配置的 list 表?

database-design - 数据库设计问题: Treating GUID's around the place

questdb - QuestDB 是否支持外键、主键、引用?

database-design - 带有一个代理键和两个唯一键的BCNF