【问题标题】:First preparedStatement using Cassandra always slow使用 Cassandra 的第一个preparedStatement 总是很慢
【发布时间】:2013-06-24 16:52:49
【问题描述】:

我注意到如果我有一个 java 方法,其中我有一个 prepareStatement 使用 Cassandra 附带的 JDBC 驱动程序,它总是很慢。但是,如果我第二次在方法中两次输入相同的查询,它的速度会快 20 倍。这是为什么?我认为第二、第三、四次调用 java 方法会比第一次更快。我正在使用 Cassandra 1.2.5。我还在行缓存中缓存了 100MB 的行,并将表设置为缓存 =“全部”。在 Cassandra-cli 中,我验证了设置。在 Cassandra-Cli 中,我验证了第二次、第三次和第四次从同一个表中获取行时,我执行 JDBC 调用以得到更快的响应时间。 有什么想法吗?

谢谢, -托尼

【问题讨论】:

    标签: cassandra


    【解决方案1】:

    来自众所周知的CQL3 documentation(顺便说一句,总是一个很好的起点):

    Prepared statement 是一种优化,它允许只解析一次查询,但使用不同的具体值执行多次。

    语句被缓存。这是您正在经历的差异制造者。准备好的语句也被预编译,通常意味着在对数据库运行查询之前准备好执行计划。了解自己在做什么可以加快流程。

    在第一次运行时,你准备好的语句被缓存,以防你再次运行相同的查询,你这样做,并且由于它被缓存,查询将被执行得更快。

    【讨论】:

      猜你喜欢
      • 2014-10-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-06-02
      • 1970-01-01
      • 2013-10-13
      • 1970-01-01
      • 2021-08-24
      相关资源
      最近更新 更多