時間:2024-03-07 21:27作者:下載吧人氣:20
一、前言
以前的系統(tǒng)由于表設計比較復雜(多張表,表與表直接有主從關系),這個是業(yè)務邏輯決定的。 插入效率簡直實在無法忍受,必須優(yōu)化。在了解了Postgre的Copy,unlogged table 特性
之后,決定一探究竟。
二、測試用例
1.數(shù)據(jù)表結構:表示一個員工工作績效的表(work_test):共15個字段
id,no,name,sex,tel,address,provice,city,post,mobile,department,work,start_time,end_time,score
索引(b-tree的集群索引或者叫聚集索引):id,no,name,sex,tel,address,provice,city,post,mobile,department,work
2.測試環(huán)境:win7,四核,2GB內(nèi)存;postgre版本9.3;Npgsql連接Postgre數(shù)據(jù)庫。
三、insert/ transaction/ copy/unlogged table
1.insert 一個10W數(shù)據(jù)大概需要120s,雖然已經(jīng)提升“不少”,但是還是不盡如人意。以前用SQLite時發(fā)現(xiàn)Transaction可以大幅提升性能,于是在Postgre中試試,發(fā)現(xiàn)并沒有明顯變
化。不知何故。
2. copy可以將文件(csv)中的數(shù)據(jù)復制進數(shù)據(jù)庫中,當然數(shù)據(jù)表的結構和要數(shù)據(jù)類型要與文件一一對應。據(jù)說可以大幅提升插入性能。
網(wǎng)友評論