我们需要快速存储大量数据,一次大约 10 万条记录。我正在评估 RavenDB,我得到的指标似乎相当低——存储 10k 条记录大约需要 2.5-3 秒。
代码几乎直接来自文档:
using (IDocumentStore store = new DocumentStore { Urls = new[] { "http://localhost:8080" }, Database = "xxx" })
{
store.Initialize();
for (int i = 0; i < 10; i++)
{
using (IDocumentSession session = store.OpenSession())
{
var things = DataGenerator.GenerateListOfThings(); // gets me a 10k objects
foreach (var thing in things)
{
session.Store(thing);
}
session.SaveChanges();
}
}
}
“事物”对象是一个具有大约 20 个属性的平面对象,没有什么特别之处。
我还尝试保存 1000 个实体块,这将运行时间提高了约 10%,并尝试了批量加载,结果相似。
Raven 在具有 i7、SSD 和 16Gb 内存的机器上以默认配置在 docker 容器中运行。文档说“在商品硬件上写入 150k”,但我没有看到任何接近它的东西。我错过了什么吗?