日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

postgresql優(yōu)化數(shù)據(jù)的批量插入

系統(tǒng) 4677 0

原文: http://www.cnblogs.com/mchina/archive/2012/08/11/2537393.html

有以下幾種方法用于優(yōu)化數(shù)據(jù)的批量插入。

?? ? 1. 關(guān)閉自動(dòng)提交:
?? ?在批量插入數(shù)據(jù)時(shí),如果每條數(shù)據(jù)都被自動(dòng)提交,當(dāng)中途出現(xiàn)系統(tǒng)故障時(shí),不僅不能保障本次批量插入的數(shù)據(jù)一致性,而且由于有多次提交操作的發(fā)生,整個(gè)插入效率也會(huì)受到很大的打擊。解決方法是,關(guān)閉系統(tǒng)的自動(dòng)提交,并且在插入開(kāi)始之前,顯式的執(zhí)行begin transaction命令,在全部插入操作完成之后再執(zhí)行commit命令提交所有的插入操作。
?? ?
?? ? 2. 使用COPY:
?? ?使用COPY在一條命令里裝載所有記錄,而不是一系列的INSERT命令。COPY命令是為裝載數(shù)量巨大的數(shù)據(jù)行優(yōu)化過(guò)的,它不像INSERT命令那樣靈活,但是在裝載大量數(shù)據(jù)時(shí),系統(tǒng)開(kāi)銷(xiāo)也要少很多。因?yàn)镃OPY是單條命令,因此在填充表的時(shí)候就沒(méi)有必要關(guān)閉自動(dòng)提交了。 ?
?? ?
?? ? 3. 刪除索引:
?? ?如果你正在裝載一個(gè)新創(chuàng)建的表,最快的方法是創(chuàng)建表,用COPY批量裝載,然后創(chuàng)建表需要的任何索引。因?yàn)樵谝汛嬖跀?shù)據(jù)的表上創(chuàng)建索引比維護(hù)逐行增加要快。當(dāng)然在缺少索引期間,其它有關(guān)該表的查詢(xún)操作的性能將會(huì)受到一定的影響,唯一性約束也有可能遭到破壞。
?? ?
?? ? 4. 刪除外鍵約束:
?? ?和索引一樣,"批量地"檢查外鍵約束比一行行檢查更加高效。因此,我們可以先刪除外鍵約束,裝載數(shù)據(jù),然后再重建約束。
?? ?
?? ? 5. 增大maintenance_work_mem:
?? ?在裝載大量數(shù)據(jù)時(shí),臨時(shí)增大maintenance_work_mem系統(tǒng)變量的值可以改進(jìn)性能。這個(gè)系統(tǒng)參數(shù)可以提高CREATE INDEX命令和ALTER TABLE ADD FOREIGN KEY命令的執(zhí)行效率,但是它不會(huì)對(duì)COPY操作本身產(chǎn)生多大的影響。
?? ?
?? ? 6. 增大checkpoint_segments:
?? ?臨時(shí)增大checkpoint_segments系統(tǒng)變量的值也可以提高大量數(shù)據(jù)裝載的效率。這是因?yàn)樵谙騊ostgreSQL裝載大量數(shù)據(jù)時(shí),將會(huì)導(dǎo)致檢查點(diǎn)操作(由系統(tǒng)變量checkpoint_timeout聲明)比平時(shí)更加頻繁的發(fā)生。在每次檢查點(diǎn)發(fā)生時(shí),所有的臟數(shù)據(jù)都必須flush到磁盤(pán)上。通過(guò)提高checkpoint_segments變量的值,可以有效的減少檢查點(diǎn)的數(shù)目。
?? ?
?? ? 7. 事后運(yùn)行ANALYZE:
?? ?在增加或者更新了大量數(shù)據(jù)之后,應(yīng)該立即運(yùn)行ANALYZE命令,這樣可以保證規(guī)劃器得到基于該表的最新數(shù)據(jù)統(tǒng)計(jì)。換句話說(shuō),如果沒(méi)有統(tǒng)計(jì)數(shù)據(jù)或者統(tǒng)計(jì)數(shù)據(jù)太過(guò)陳舊,那么規(guī)劃器很可能會(huì)選擇一個(gè)較差的查詢(xún)規(guī)劃,從而導(dǎo)致查詢(xún)效率過(guò)于低下。

postgresql優(yōu)化數(shù)據(jù)的批量插入


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對(duì)您有幫助就好】

您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長(zhǎng)會(huì)非常 感謝您的哦!!!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 祁门县| 弥勒县| 白山市| 观塘区| 阜新市| 高安市| 宁陕县| 遵义县| 永康市| 航空| 德庆县| 分宜县| 陇南市| 陆河县| 木兰县| 南丹县| 阳曲县| 安乡县| 黑水县| 宝坻区| 桐城市| 宜丰县| 房产| 蒙城县| 会昌县| 乌苏市| 沅江市| 穆棱市| 台安县| 枣强县| 宁都县| 万盛区| 荆州市| 搜索| 龙陵县| 济南市| 棋牌| 宿松县| 赤水市| 高平市| 师宗县|