展开讨论

创业与收入经验摘录 · 机器翻译

因此我尝试计算某种定价比较,我现在只看CPU

… 因此我尝试计算某种定价比较,我现在只看CPU。我发现他们对m5.large的定价是每小时0.46美元,而他们的m5.8xlarge(托管专用产品)则是每小时6.34美元。使用AWS价格计算器并直接选择这些实例类型的话,租用AWS实例的价格会低4倍。为许可支付原始服务器成本4倍的费用并不是一件令人愉快的事情。

源讨论在动视(Activision)扩展数据库 [pdf]原帖 120 条评论 · 导入时统计
2

这条内容在回应什么?

父级讨论 · 节选

GE

我考虑过的一个策略是: 以完全兼容CockroachDB的方式编写Postgres,以便在需要时可以转换到CockroachDB。 基本上:1. 只使用BIGINT或UUID或TEXT或复合主键。2. 限制使用顺序索引。(例如:时间戳。虽然不是世界末日,但会产生热点,需要使用哈希分片索引)3. 避免使用高级功能,如存储过程。4. 避免或极少使用外键。(性能) 直接转向CockroachDB似乎也是合理的,但你很快就会遇到性能瓶颈,仅在1-2台服务器上,就需要一个集群来匹配。

完整原文

社区评论 0

还没有社区评论,来聊聊你的看法。

原讨论中的回复 2

仅展示本次导入中包含的直接回复。中文为机器翻译,可查看英文原文。

GE

可以确认无法选择空值。到目前为止,还没有找到合理的模式/解决方法。其原因似乎是空值没有被存储——在csql中显示为null,但实际上这些数据根本不存在。 值得一提的是,CockroachDB也不存储空值,但它允许查询空值。 一个可能的解决方法是使用主键(主键永远不会是空值)手动遍历整个表,检查应用中的空值并以这种方式清理它们。 注意到INSERTS默认会被视为UPSERT,除非你使用IF NOT EXISTS... ScyllaDB根本不在乎它是否覆盖了现有行,哈哈。虽然我可以接受UPSERT这个陷阱,但我觉得空值的陷阱要烦人得多。

完整原文
GE

找到了解决无法使用WHERE x = NULL的方法 SELECT * FROM users; 然后你可以将你的主键插入进去。 UPDATE users SET address='' WHERE user_id IN (9affeac3-5d92-111d-779c-55eb6d78a806, ...) IF address=null; 然后你可以进行你的SELECT来修复数据。 SELECT * FROM users WHERE address=''; _______________________ 另一个陷阱:CREATE TABLE时列没有默认值。非常烦人。 另一个陷阱:在WHERE子句中,分区键只支持"="和"IN (...)"。https://docs.scylladb.com/stable/cql/dml.html#the-where-clau... 这意味着,你不能执行UPDATE WHERE user_id > 0 ... 我开始真正欣赏CockroachDB所做的努力,他们让自己的"CQL"版本与Postgres兼容,尽管在架构上它们都是底层的键值存储数据库……只是CockroachDB的性能因为强制一致性而远低于ScyllaDB。…

完整原文
在 Hacker News 阅读

尊重不同观点,分享具体经验。

登录后即可发帖、评论、转发和引用。