是否有一个更快的方法插入到卡桑德拉
本文关键字:插入 桑德拉 方法 有一个 是否 | 更新日期: 2023-09-27 18:06:10
我每秒收到1000条消息,我想尽快按时间顺序存储在Cassandra中。
目前,我为每条消息创建一个字符串,然后调用execute:
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);
堵塞在"。执行"行。当我把它注释掉的时候,它的表现很好。
作为参考,我可以在没有任何性能问题的情况下将"cmd"写入磁盘。
我该怎么做才能加快插入的速度?
我不是特别了解c#驱动程序,但是您正在获得性能打击,因为看起来您正在使用同步执行语句。如果你想最大化插入性能,你应该使用ExecuteAsync的asynchronous路由。此外,请考虑使用预处理语句,它们可以提供一个小小的性能提升。