2016-09-07 40 views
0

我每秒鐘都會收到幾條1000條消息,我希望儘快以時間順序在Cassandra中存儲。有沒有更快的方法插入到Cassandra

目前,每個消息我創建一個字符串,然後調用執行:

 string cmd = @"INSERT INTO tick_store.""MY_Data"" 
          (""SeqNum"", ""AskPrice"", ""AskSize"", ""MY_Complete_Code"", ""BidPrice"", ""BidSize"", ""LastPrice"", ""LastSize"", ""RecordType"", ""Volume"", ""utcDT"") 
          VALUES(" + ++CqlSeqNum + @", " + AskPrice + @", " + AskSize + @", '" + MY_Complete_Code + @"', " + BidPrice + @", " + BidSize + @", " 
          //  + LastPrice + @", " + LastSize + @", '" + RecordType + @"', " + Volume + @", " + ToUnixTimestamp(utcDT) + @") "; 
     +LastPrice + @", " + LastSize + @", '" + RecordType + @"', " + Volume + @", '" + utcDT.ToString("yyyy-MM-ddTHH:mm:ss.fff") + @"') "; 

     CqlSession.Execute(cmd); 

的堵塞是對「.Execute」行。當我評論它的表現很好。

僅供參考,我可以將「cmd」寫入磁盤而不會出現任何性能問題。

我該如何加速插入?

回答

1

我並不特別瞭解C#驅動程序,但是您正在獲得性能提升,因爲您似乎正在使用同步執行語句。如果你想最大化插入性能,你應該去異步路線與ExecuteAsync。而且,請考慮使用準備好的語句,它們可以給予小的性能提升。

相關問題