是否有一个更快的方法插入到卡桑德拉

本文关键字:插入 桑德拉 方法 有一个 是否 | 更新日期: 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#驱动程序,但是您正在获得性能打击,因为看起来您正在使用同步执行语句。如果你想最大化插入性能,你应该使用ExecuteAsyncasynchronous路由。此外,请考虑使用预处理语句,它们可以提供一个小小的性能提升。