posts - 8,  comments - 174,  trackbacks - 0

          PostgreSQL提供了一些幫助提升性能的功能。主要有一些幾個方面。

          1.使用EXPLAIN
          EXPLAIN命令可以查看執(zhí)行計劃,在前面的blog中已經(jīng)介紹過。這個方法是我們最主要的調(diào)試工具。

          2.及時更新執(zhí)行計劃中使用的統(tǒng)計信息
          由于統(tǒng)計 信息不是每次操作數(shù)據(jù) 庫 都 進 行更新的,一般是在 VACUUM 、 ANALYZE 、 CREATE INDEX等DDL執(zhí)行的時候會更新統(tǒng)計信息,
          因此執(zhí) 行 計 劃所用的 統(tǒng)計 信息很有可能比 較 舊。 這樣執(zhí) 行 計 劃的分析 結(jié) 果可能 誤 差會 變 大。

          以下是表tenk1的相關的一部分統(tǒng)計信息。
          SELECT relname, relkind, reltuples, relpages
          FROM pg_class
          WHERE relname LIKE 'tenk1%';

          relname | relkind | reltuples | relpages
          ----------------------+---------+-----------+----------
          tenk1 | r | 10000 | 358
          tenk1_hundred | i | 10000 | 30
          tenk1_thous_tenthous | i | 10000 | 30
          tenk1_unique1 | i | 10000 | 30
          tenk1_unique2 | i | 10000 | 30
          (5 rows)
          其中 relkind是類型,r是自身表,i是索引index;reltuples是項目數(shù);relpages是所占硬盤的塊數(shù)。

          3.明確用join來關聯(lián)表
          一般寫法:SELECT * FROM a, b, c WHERE a.id = b.id AND b.ref = c.id;
          如果明確用join的話,執(zhí)行時候執(zhí)行計劃相對容易控制一些。
          例子:
          SELECT * FROM a CROSS JOIN b CROSS JOIN c WHERE a.id = b.id AND b.ref = c.id;
          SELECT * FROM a JOIN (b JOIN c ON (b.ref = c.id)) ON (a.id = b.id);

          4.關閉自動提交(autocommit=false)

          5.多次插入數(shù)據(jù)是用copy命令更有效率
          我們有的處理中要對同一張表執(zhí)行很多次insert操作。這個時候我們用copy命令更有效率。因為insert一次,其相關的index都要做一次,比較花費時間。

          6.臨時刪除index
          有時候我們在備份和重新導入數(shù)據(jù)的時候,如果數(shù)據(jù)量很大的話,要很幾個小時才能完成。這個時候可以先把index刪除掉。導入在建index。

          7.外鍵關聯(lián)的刪除
          如果表的有外鍵的話,每次操作都沒去check外鍵整合性。因此比較慢。數(shù)據(jù)導入后在建立外鍵也是一種選擇。

          8.增加maintenance_work_mem參數(shù)大小
          增加這個參數(shù)可以提升CREATE INDEX和ALTER TABLE ADD FOREIGN KEY的執(zhí)行效率。

          9.增加checkpoint_segments參數(shù)的大小
          增加這個參數(shù)可以提升大量數(shù)據(jù)導入時候的速度。

          10.設置archive_mode無效
          這個參數(shù)設置為無效的時候,能夠提升以下的操作的速度
          ?CREATE TABLE AS SELECT
          ?CREATE INDEX
          ?ALTER TABLE SET TABLESPACE
          ?CLUSTER等。

          11.最后執(zhí)行VACUUM ANALYZE
          表中數(shù)據(jù)大量變化的時候建議執(zhí)行VACUUM ANALYZE。

          posted on 2012-04-19 23:49 月月鳥 閱讀(969) 評論(10)  編輯  收藏 所屬分類: 其他

          FeedBack:
          # re: PostgreSQL 數(shù)據(jù)庫性能提升的幾個方面
          2013-10-17 17:31 | H2O
          enterprise osgi in action  回復  更多評論
            
          # re: PostgreSQL 數(shù)據(jù)庫性能提升的幾個方面
          2014-06-27 14:23 | oop
          <capability name="org.ops4j.pax.web.jetty.bundle" startlevel="1"/>
          <capability name="org.ops4j.pax.web.jsp" startlevel="1"/>
          <capability name="org.ops4j.pax.web.extender.war" startlevel="1"/>
          <capability name="org.apache.aries.blueprint" startlevel="1"/>
          <capability name="org.apache.aries.proxy" startlevel="1"/>
          <capability name="org.apache.aries.util" startlevel="1"/>  回復  更多評論
            
          # re: PostgreSQL 數(shù)據(jù)庫性能提升的幾個方面
          # re: PostgreSQL 數(shù)據(jù)庫性能提升的幾個方面
          2014-10-15 11:05 | pt

          黃金時時彩全能計劃王
          黃金時時彩全能計劃王  回復  更多評論
            
          # re: PostgreSQL 數(shù)據(jù)庫性能提升的幾個方面
          # re: PostgreSQL 數(shù)據(jù)庫性能提升的幾個方面
          2015-03-03 08:38 | pt
          從程序員到CTO的Java技術路線圖

          http://blog.csdn.net/majian_1987/article/details/9316213  回復  更多評論
            
          # re: PostgreSQL 數(shù)據(jù)庫性能提升的幾個方面
          2015-04-27 17:33 | pt
          Everything
          靈格斯
          PNotes
          Launchy
          搜狗壁紙
          Notepad++
          Java
          eclipse
          Navicat Premium
          MySQL-Front
          Xftp
          Xshell
          火狐
          Chrome
          ant
          maven
          mysql
          BeyondCompare
          SVN
          SmartIDE  回復  更多評論
            
          # re: PostgreSQL 數(shù)據(jù)庫性能提升的幾個方面
          2015-05-05 16:41 | pt
          # re: PostgreSQL 數(shù)據(jù)庫性能提升的幾個方面
          # re: PostgreSQL 數(shù)據(jù)庫性能提升的幾個方面

          只有注冊用戶登錄后才能發(fā)表評論。


          網(wǎng)站導航:
           
          <2014年10月>
          2829301234
          567891011
          12131415161718
          19202122232425
          2627282930311
          2345678

          常用鏈接

          留言簿(5)

          隨筆分類(8)

          隨筆檔案(8)

          文章分類(1)

          文章檔案(1)

          其他

          娛樂

          技術

          搜索

          •  

          積分與排名

          • 積分 - 116287
          • 排名 - 503

          最新隨筆

          最新評論

          評論排行榜

          主站蜘蛛池模板: 苍山县| 芜湖市| 黎城县| 抚松县| 尖扎县| 莎车县| 元氏县| 乐都县| 忻州市| 金塔县| 襄樊市| 佛山市| 宜黄县| 任丘市| 广汉市| 集贤县| 防城港市| 祁门县| 元朗区| 石狮市| 凌云县| 莱西市| 当雄县| 邢台市| 土默特左旗| 秀山| 新平| 砀山县| 江阴市| 广昌县| 禹城市| 光泽县| 建阳市| 徐汇区| 屏南县| 环江| 班玛县| 梧州市| 射阳县| 乌鲁木齐县| 金寨县|