环境及测试
使用.net驱动npgsql连接post数据库。配置:win10 x64, i5-4590, 16G DDR3, SSD 850EVO.
postgresql 9.6.3,数据库与数据都安装在SSD上,默认配置,无扩展。
CREATE TABLE public.mesh
(
x integer NOT NULL,
y integer NOT NULL,
z integer, CONSTRAINT prim PRIMARY KEY (x, y)
)
1. 导入
使用数据备份,csv格式导入,文件位于机械硬盘上,480MB,数据量2500w+。
使用COPY
copy mesh from 'd:/user.csv' csv
运行时间107s
使用insert
单连接,c# release any cpu 非调试模式。
class Program{ static void Main(string[] args) { var list = GetData("D:\\user.csv");
TimeCalc.LogStartTime(); using (var sm = new SqlManipulation(@"Strings", SqlType.PostgresQL))
{
sm.Init(); foreach (var n in list)
{
sm.ExcuteNonQuery($"insert into mesh(x,y,z) values({n.x},{n.y},{n.z})");
}
}
TimeCalc.ShowTotalDuration();
Console.ReadKey();
} static List<(int x, int y, int z)> GetData(string filepath)
{
List<ValueTuple<int, int, int>> list = new List<(int, int, int)>(); fore