環(huán)境及測(cè)試
使用.net驅(qū)動(dòng)npgsql連接post數(shù)據(jù)庫(kù)。配置:win10 x64, i5-4590, 16G DDR3, SSD 850EVO.
postgresql 9.6.3,數(shù)據(jù)庫(kù)與數(shù)據(jù)都安裝在SSD上,默認(rèn)配置,無(wú)擴(kuò)展。
CREATE TABLE public.mesh ( x integer NOT NULL, y integer NOT NULL, z integer, CONSTRAINT prim PRIMARY KEY (x, y) )
1. 導(dǎo)入
使用數(shù)據(jù)備份,csv格式導(dǎo)入,文件位于機(jī)械硬盤(pán)上,480MB,數(shù)據(jù)量2500w+。
使用COPY
copy mesh from 'd:/user.csv' csv
運(yùn)行時(shí)間107s
使用insert
單連接,c# release any cpu 非調(diào)試模式。
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})"); &