因此我尝试计算某种定价比较,我现在只看CPU
… 因此我尝试计算某种定价比较,我现在只看CPU。我发现他们对m5.large的定价是每小时0.46美元,而他们的m5.8xlarge(托管专用产品)则是每小时6.34美元。使用AWS价格计算器并直接选择这些实例类型的话,租用AWS实例的价格会低4倍。为许可支付原始服务器成本4倍的费用并不是一件令人愉快的事情。
源讨论在动视(Activision)扩展数据库 [pdf]原帖 120 条评论 · 导入时统计… 因此我尝试计算某种定价比较,我现在只看CPU。我发现他们对m5.large的定价是每小时0.46美元,而他们的m5.8xlarge(托管专用产品)则是每小时6.34美元。使用AWS价格计算器并直接选择这些实例类型的话,租用AWS实例的价格会低4倍。为许可支付原始服务器成本4倍的费用并不是一件令人愉快的事情。
源讨论在动视(Activision)扩展数据库 [pdf]原帖 120 条评论 · 导入时统计我考虑过的一个策略是: 以完全兼容CockroachDB的方式编写Postgres,以便在需要时可以转换到CockroachDB。 基本上:1. 只使用BIGINT或UUID或TEXT或复合主键。2. 限制使用顺序索引。(例如:时间戳。虽然不是世界末日,但会产生热点,需要使用哈希分片索引)3. 避免使用高级功能,如存储过程。4. 避免或极少使用外键。(性能) 直接转向CockroachDB似乎也是合理的,但你很快就会遇到性能瓶颈,仅在1-2台服务器上,就需要一个集群来匹配。
完整原文把你的经验,加入这段讨论。
可以确认无法选择空值。到目前为止,还没有找到合理的模式/解决方法。其原因似乎是空值没有被存储——在csql中显示为null,但实际上这些数据根本不存在。 值得一提的是,CockroachDB也不存储空值,但它允许查询空值。 一个可能的解决方法是使用主键(主键永远不会是空值)手动遍历整个表,检查应用中的空值并以这种方式清理它们。 注意到INSERTS默认会被视为UPSERT,除非你使用IF NOT EXISTS... ScyllaDB根本不在乎它是否覆盖了现有行,哈哈。虽然我可以接受UPSERT这个陷阱,但我觉得空值的陷阱要烦人得多。
完整原文找到了解决无法使用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。…
完整原文尊重不同观点,分享具体经验。
登录后即可发帖、评论、转发和引用。