麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁(yè) > 數(shù)據(jù)庫(kù) > PostgreSQL > 正文

Postgre數(shù)據(jù)庫(kù)Insert 、Query性能優(yōu)化詳解

2020-03-12 23:55:03
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
這篇文章主要介紹了Postgre數(shù)據(jù)庫(kù)Insert和Query性能優(yōu)化的步驟,大家可以參考使用
 
 

一、前言
以前的系統(tǒng)由于表設(shè)計(jì)比較復(fù)雜(多張表,表與表直接有主從關(guān)系),這個(gè)是業(yè)務(wù)邏輯決定的。 插入效率簡(jiǎn)直實(shí)在無(wú)法忍受,必須優(yōu)化。在了解了Postgre的Copy,unlogged table 特性 
之后,決定一探究竟。

二、測(cè)試用例

1.數(shù)據(jù)表結(jié)構(gòu):表示一個(gè)員工工作績(jī)效的表(work_test):共15個(gè)字段
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.測(cè)試環(huán)境:win7,四核,2GB內(nèi)存;postgre版本9.3;Npgsql連接Postgre數(shù)據(jù)庫(kù)。

三、insert/ transaction/ copy/unlogged table

1.insert 一個(gè)10W數(shù)據(jù)大概需要120s,雖然已經(jīng)提升“不少”,但是還是不盡如人意。以前用SQLite時(shí)發(fā)現(xiàn)Transaction可以大幅提升性能,于是在Postgre中試試,發(fā)現(xiàn)并沒(méi)有明顯變 
化。不知何故。

2. copy可以將文件(csv)中的數(shù)據(jù)復(fù)制進(jìn)數(shù)據(jù)庫(kù)中,當(dāng)然數(shù)據(jù)表的結(jié)構(gòu)和要數(shù)據(jù)類(lèi)型要與文件一一對(duì)應(yīng)。據(jù)說(shuō)可以大幅提升插入性能。

復(fù)制代碼代碼如下:

COPY 'work_test' from 'c:/temp.csv' WITH DELIMITER AS ','

  
使用Copy后發(fā)現(xiàn)插入的性能立馬提升至30s,相當(dāng)于1s插入3300條記錄。這中間還包含生成csv文件的時(shí)間。

 

3.unlogged table
unlogged table,網(wǎng)上的文章說(shuō)可以10倍于insert。使用方法也很簡(jiǎn)單:Create unlogged table ...
但是unlogged table 在遇到Postgre服務(wù)器異常重啟后會(huì)丟失全部數(shù)據(jù),所以如果你的數(shù)據(jù)不允許丟失,請(qǐng)不要使用。
使用后發(fā)現(xiàn),大概20s,1s插入5000條記錄。

下面是三種插入方式的走勢(shì)圖:
Postgre數(shù)據(jù)庫(kù)Insert 、Query性能優(yōu)化詳解

說(shuō)明:x軸表示數(shù)據(jù)庫(kù)中已有的記錄數(shù),單位百萬(wàn),每個(gè)點(diǎn)是10W.Y軸表示每次插入所耗時(shí)間,單位秒。
藍(lán)色線(xiàn):insert;之所以后面比較穩(wěn)定是因?yàn)殡娔X沒(méi)有運(yùn)行其他程序。所以說(shuō),電腦工作狀態(tài)對(duì)Postgre效率有一定的影響。
粉紅色:copy;
黃色線(xiàn):copy+unlogged
 雖然建了索引,并且表中的數(shù)據(jù)一直累加進(jìn)來(lái),對(duì)于后續(xù)插入數(shù)據(jù)性能并沒(méi)有任何影響,這個(gè)結(jié)果就是我想看到的。

四、查詢(xún)測(cè)試
按name字段搜索:

復(fù)制代碼代碼如下:

select * from work_test where name='1'


Postgre數(shù)據(jù)庫(kù)Insert 、Query性能優(yōu)化詳解

說(shuō)明:x軸表示數(shù)據(jù)庫(kù)中已有的記錄數(shù),單位百萬(wàn),每個(gè)點(diǎn)是10W.Y軸表示每次查詢(xún)所耗時(shí)間,單位毫秒。

藍(lán)色線(xiàn):insert;
粉紅色:copy;
黃色線(xiàn):copy+unlogged

由于三種插入方式結(jié)果都是一樣的,所以對(duì)比并沒(méi)有意義,這里主要看查詢(xún)耗時(shí)。平均下來(lái):500ms,并且隨著Row count的增加,查詢(xún)效率并沒(méi)有降低。這主要得益于良好的索引。
另外發(fā)現(xiàn):條件越多,查詢(xún)效率越高,因?yàn)閽呙璧男袛?shù)在減少,后面的圖就不貼出來(lái)了。

發(fā)表評(píng)論 共有條評(píng)論
用戶(hù)名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 色中色综合网 | 一级做a爱片性色毛片 | 国产电影精品久久 | 视频在线中文字幕 | 亚洲国产超高清a毛毛片 | 国内精品久久久久久久久久 | 国产一级二级毛片 | 日本xxxx色视频在线观看免费, | 欧美亚洲一级 | 日韩字幕在线观看 | 日韩视频一区二区三区在线观看 | 日本视频在线播放 | 精品一区二区久久久久久久网精 | 2021狠狠操| 国产成人高清在线观看 | 999精品国产 | 国产毛片网 | 在线观看免费毛片视频 | 在线成人影视 | 日本在线播放一区二区三区 | 在线成人看片 | 午夜国产在线 | 欧美性生活区 | 国产精品免费一区二区三区都可以 | av在线播放亚洲 | 午夜精品老牛av一区二区三区 | 一级黄色免费观看 | 操嫩草| 91色琪琪电影亚洲精品久久 | 国产高潮国产高潮久久久91 | 欧美一区二区三区中文字幕 | 成人在线观看网 | www日韩大片| 成人h视频在线 | 一级做a爱片性色毛片高清 日本一区二区在线看 | 精品一区二区三区中文字幕老牛 | 黄色大片在线免费看 | 在线免费观看麻豆 | 久久久久久久.comav | 亚洲精品久久久久www | 欧美激情性色生活片在线观看 |