SQLite 没有任何特殊的方式来批量插入数据。 若要在插入或更新数据时获得最佳性能,请确保执行以下作:
- 使用事务。
- 重复使用相同的参数化命令。 后续执行将重用第一次执行的编译结果。
using (var transaction = connection.BeginTransaction())
{
var command = connection.CreateCommand();
command.CommandText =
@"
INSERT INTO data
VALUES ($value)
";
var parameter = command.CreateParameter();
parameter.ParameterName = "$value";
command.Parameters.Add(parameter);
// Insert a lot of data
var random = new Random();
for (var i = 0; i < 150_000; i++)
{
parameter.Value = random.Next();
command.ExecuteNonQuery();
}
transaction.Commit();
}