首页 文章

Cassandra - 如何重新修改键空间和表格?获得警告 - 重新准备已经准备好的查询通常是一种反模式

提问于
浏览
0

得到警告:

重新准备已准备好的查询通常是一种反模式,可能会影响性能 . 考虑只准备一次声明 .

我看到了各种类似的问题,例如Datastax: Re-preparing already prepared query warning,但它们没有解决重新分配查询使用的键空间或表的问题 .

我通常可以重用查询,但它需要为每个键空间和表缓存它,我不想管理状态 . 或者,我可以在执行查询之前重新绑定键空间和表(然后不需要重新创建):

//我正在使用的插入查询

def insertQuery(keyspace: String, table: String): Insert = QueryBuilder.insertInto(keyspace, table)
    .value("c1", QueryBuilder.bindMarker())
    .value("c2")
    .value(...)
    .value("c_n")

需要这样的东西:

QueryBuilder.insertInto(keyspace = ???BIND MARKER????, table = ???BIND MARKER???)

1 回答

  • 1

    你不能绑定键空间和表名...

    如果您不需要使用它们 - 只需生成 SimpleStatement - 它会更有效,因为现在如果您准备好每个请求,那么您正在进行2次网络往返 - 一次用于准备查询,另一次用于执行 .

    但我建议在启动/第一次连接时准备所有必要的查询,因为它们可以带来非常显着的性能提升(当然,如果你在意的话) .

相关问题