2016-04-25 61 views
0

從本文引用:卡桑德拉準備空列的語句?

http://www.datastax.com/dev/blog/4-simple-rules-when-using-the-datastax-drivers-for-cassandra

「Cassandra的存儲引擎被優化,以避免存儲不必要空列,但使用準備的語句中未空值提供結果這些參數被傳遞給卡桑德拉時(和因此存儲的是墓碑)目前,這種情況下唯一的解決方法是爲最常見的插入組合使用預定義的一組預定義語句,並在較罕見的情況下使用正常語句。

我注意到,有探索這個問題的可能的解決方案任務:

https://issues.apache.org/jira/browse/CASSANDRA-7304

,但我似乎無法找到這是否實際上已解決,其中釋放(在Java卡桑德拉司機例如)以及如何?

如果沒有解決,是否有不同的插入語句仍然是最好的解決方法?

回答

1

未設置的變量是相對較新的,確實可以用來避免在執行準備好的語句時出現墓碑,但它們只能從協議V4開始,即從Cassandra 2.2開始提供。

從版本3.0.0開始支持Java驅動程序中的未設置變量。使用協議V4時,默認情況下,所有變量都將被視爲未設置,除非您明確將其設置爲其他內容。如果您需要「取消設置」以前設置的變量,則可以調用BoundStatementunset()方法之一。