婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > Postgre數(shù)據(jù)庫Insert 、Query性能優(yōu)化詳解

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

熱門標(biāo)簽:crm外呼系統(tǒng)聯(lián)系方式 小裙科技電銷機器人怎樣 河南電話外呼系統(tǒng)招商 外呼線路資源屬于電信業(yè)務(wù)嗎 青白江400企業(yè)電話申請 內(nèi)蒙古營銷智能外呼系統(tǒng)哪個好 智能外呼系統(tǒng)官網(wǎng) 呼和浩特外呼系統(tǒng)原理是什么 長沙電銷外呼防封卡是什么

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

二、測試用例

1.數(shù)據(jù)表結(jié)構(gòu):表示一個員工工作績效的表(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ù)復(fù)制進數(shù)據(jù)庫中,當(dāng)然數(shù)據(jù)表的結(jié)構(gòu)和要數(shù)據(jù)類型要與文件一一對應(yīng)。據(jù)說可以大幅提升插入性能。

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

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

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

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

下面是三種插入方式的走勢圖:

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

四、查詢測試
按name字段搜索:

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

select * from work_test where name='1'




說明:x軸表示數(shù)據(jù)庫中已有的記錄數(shù),單位百萬,每個點是10W.Y軸表示每次查詢所耗時間,單位毫秒。

藍色線:insert;
粉紅色:copy;
黃色線:copy+unlogged

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

您可能感興趣的文章:
  • 海量數(shù)據(jù)庫的查詢優(yōu)化及分頁算法方案
  • SQL Server 數(shù)據(jù)庫優(yōu)化
  • mysql 數(shù)據(jù)庫中my.ini的優(yōu)化 2G內(nèi)存針對站多 抗壓型的設(shè)置
  • 開啟SQLSERVER數(shù)據(jù)庫緩存依賴優(yōu)化網(wǎng)站性能
  • MySQL 聯(lián)合索引與Where子句的優(yōu)化 提高數(shù)據(jù)庫運行效率
  • asp.net程序優(yōu)化 盡量減少數(shù)據(jù)庫連接操作
  • 服務(wù)器維護小常識(硬盤內(nèi)容增加、數(shù)據(jù)庫優(yōu)化等)
  • 數(shù)據(jù)庫性能優(yōu)化二:數(shù)據(jù)庫表優(yōu)化提升性能
  • 數(shù)據(jù)庫性能優(yōu)化一:數(shù)據(jù)庫自身優(yōu)化提升性能
  • Oracle SQL tuning 數(shù)據(jù)庫優(yōu)化步驟分享(圖文教程)
  • oracle數(shù)據(jù)庫sql的優(yōu)化總結(jié)
  • 優(yōu)化Mysql數(shù)據(jù)庫的8個方法
  • mysql中優(yōu)化和修復(fù)數(shù)據(jù)庫工具mysqlcheck詳細(xì)介紹
  • Codeigniter操作數(shù)據(jù)庫表的優(yōu)化寫法總結(jié)
  • MySQL數(shù)據(jù)庫優(yōu)化詳解
  • 用實例詳解Python中的Django框架中prefetch_related()函數(shù)對數(shù)據(jù)庫查詢的優(yōu)化
  • 數(shù)據(jù)庫學(xué)習(xí)建議之提高數(shù)據(jù)庫速度的十條建議

標(biāo)簽:呼倫貝爾 楚雄 白山 黃石 舟山 池州 安順 菏澤

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Postgre數(shù)據(jù)庫Insert 、Query性能優(yōu)化詳解》,本文關(guān)鍵詞  Postgre,數(shù)據(jù)庫,Insert,Query,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Postgre數(shù)據(jù)庫Insert 、Query性能優(yōu)化詳解》相關(guān)的同類信息!
  • 本頁收集關(guān)于Postgre數(shù)據(jù)庫Insert 、Query性能優(yōu)化詳解的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    主站蜘蛛池模板: 扎赉特旗| 喀什市| 平乡县| 壤塘县| 霍州市| 洛南县| 孟连| 天峻县| 横山县| 望江县| 云安县| 威远县| 淮滨县| 镶黄旗| 沙坪坝区| 栾城县| 莱西市| 蓬溪县| 师宗县| 逊克县| 原平市| 保靖县| 乐昌市| 潢川县| 阜新| 康保县| 雅安市| 康马县| 莱州市| 柞水县| 龙南县| 吉林省| 麦盖提县| 通河县| 连平县| 电白县| 济南市| 黑河市| 安泽县| 加查县| 沾益县|