我有很多数据要导入我的数据库。
这些数据需要处理、过滤、联合等。所以一切都是用对象完成的,在开始之前携带所有表,并将所有对象保存到最后。
在所有处理之后,我运行命令进行保存。这花费的时间太长了。我想练习一种不同的方法:
Task.Factory.StartNew(() => { while (allCSV.Length % 4 != 0) { Save(allCSV.FirstOrDefault()); allCSV = allCSV.Skip(1).ToArray(); }
int count1 = 0;
int middle = allCSV.Length / 4;
int count2 = middle;
int count3 = middle * 2;
int count4 = middle * 3;
Parallel.For(0, 4, new Action<int>((i) =>
{
switch (i)
{
case 0:
for (int j = 0; j < middle; j++)
{
Save(allCSV[count1]);
count1++;
}
break;
case 1:
for (int k = 0; k < middle; k++)
{
Save(allCSV[count2]);
count2++;
}
break;
case 2:
for (int l = 0; l < middle; l++)
{
Save(allCSV[count3]);
count3++;
}
break;
case 3:
for (int m = 0; m < middle; m++)
{
Save(allCSV[count4]);
count4++;
}
break;
}
}
}
那会是正确的吗?简化流程的最佳方法是什么?
一些考虑,使用的电脑是最新一代的。数据库是 MySQL。
用于保存的ORM,非常简单,没有任何优化。