当前位置: 首页 > 知识库问答 >
问题:

CRUD 操作 卡桑德拉映射器 vs 预准备语句

怀浩大
2023-03-14

我需要一些帮助来定义使用Cassandra的数据堆垛对象映射器和使用预准备语句的常见解决方案之间的区别。而不是代码将对象映射到POJO类会更干净,在性能等方面还有其他优点。.感谢您的回答。

共有1个答案

胡国兴
2023-03-14

Object Mapper在底层使用预准备语句(请参阅源代码),因此性能方面不应该有太大的性能差异。您需要注意设置选项,例如saveNullFields(如果您保存null,则可能会生成可能影响读取性能的thombstone)。此外,对于高性能写入,您可能需要查看Mapper操作的异步版本。

此外,您需要确保您没有多次创建< code > mapping manager ——它也像< code>Session对象一样是线程安全的。

 类似资料:
  • 我使用的是datastax Cassandra 2.0驱动程序,我在使用预先准备好的绑定语句。假设我想查询如下内容: 其中,UUID1、UUID2、UUID3是UUID值。使用绑定语句实现这一点的编程方法是什么?目前,我正在尝试以下方法: 这当前返回了错误的结果。如何正确格式化查询有何建议?

  • 由于基础设施的限制,我们无法将运行的Cassandra版本升级到 Cassandra现在抛出一个 在这种情况下,最好的解决方法是什么?大多数指南告诉我们简单地使用< code>UNSET:(。

  • 操作超时 - 仅收到 0 个响应“,信息:”表示来自服务器的错误消息“,代码:4608,一致性:1,已接收:0,阻止:1,isData 呈现:0,... 我每天尝试在我的cassandra集群上执行SELECT查询时都会遇到几次这样的错误。我们在m1.large aws实例上有一个3节点集群。他们大多数时候都能成功,但我们偶尔会遇到上述错误。我们还没有生产,所以所有的桌子都很小。我们没有超过几千行

  • 当我使用预准备语句异步执行多个语句时,我得到带有损坏数据的JSON。键和值完全损坏了。 首先,当我使用自定义脚本对我们的项目执行压力测试时,我遇到了这个问题。我们使用DataStax C驱动程序并执行来自不同光纤的语句。 然后,我试图隔离这个问题,并编写了一个简单的C#程序,它在一个循环中启动多个Task。每个任务都使用一次创建的prepared语句从基中读取数据。对于某些行,结果完全混乱,例如:

  • 我相信我已经在Cassandra csharp驱动程序(版本2.7.3)的StatementFactory中发现了一个关于如何缓存准备好的语句的逻辑的bug。下面是使用案例。 我们发现,运行此删除后,只有第一个请求成功。在深入了解StatementFactory的源代码之后 您可以看到缓存仅使用 cql 语句。在我们的例子中,我们在不同的键空间(又名会话)中具有相同的表名。两个查询中的 cql 语

  • 我正在使用Cassandra作为我的一个应用程序。我想使用Cassandra通过cql提供的Prepared语句。如果我准备了一个查询,这是否在所有节点中都准备好了?。 任何帮助是值得赞赏的。