亲爱的
我正在尝试使用C#应用程序在Cassandra数据库中插入约10万行。
要达到这个目的,我使用了nuget:
https://www.nuget.org/packages/CassandraCSharpDriver/
我已经在笔记本电脑上本地安装了Cassandra(i5、32GB RAM,Windows 10)。
我的Cassandra的设置为默认设置:
var cluster = Cluster.Builder()
.AddContactPoints(CassandracontactPoint)
.WithPort(CassandraPort)
.WithLoadBalancingPolicy(new DCAwareRoundRobinPolicy("datacenter1"))
.WithAuthProvider(new PlainTextAuthProvider(username,Password))
.Build();
Cassandra表如下:
session.Execute("DROP KEYSPACE IF EXISTS eventstore");
session.Execute("CREATE KEYSPACE eventstoreWITH REPLICATION = { 'class' : 'NetworkTopologyStrategy','datacenter1' : 1 };");
session.Execute(@"
CREATE TABLE IF NOT EXISTS eventstore.Event(
Id uuid,Data text,Version int,AgregateId uuid,EventIdentity uuid,Date timestamp,PRIMARY KEY (AgregateId,Version)
) WITH CLUSTERING ORDER BY (Version ASC)");
要插入事件,我使用以下代码:
events变量包含3秒内插入的2000个事件。
var tasks = events.Select(async @event =>
{
await mapper.InsertAsync(@event);
});
await Task.WhenAll(tasks);
目前,此解决方案的性能对于2000个事件而言约为3秒。 可以更快地插入数据??