posts - 8,  comments - 174,  trackbacks - 0

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

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

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

          以下是表tenk1的相關(guān)的一部分統(tǒng)計(jì)信息。
          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是項(xiàng)目數(shù);relpages是所占硬盤的塊數(shù)。

          3.明確用join來關(guān)聯(lián)表
          一般寫法:SELECT * FROM a, b, c WHERE a.id = b.id AND b.ref = c.id;
          如果明確用join的話,執(zhí)行時(shí)候執(zhí)行計(jì)劃相對容易控制一些。
          例子:
          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.關(guān)閉自動(dòng)提交(autocommit=false)

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

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

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

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

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

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

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

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

          FeedBack:
          # re: PostgreSQL 數(shù)據(jù)庫性能提升的幾個(gè)方面
          2013-10-17 17:31 | H2O
          enterprise osgi in action  回復(fù)  更多評論
            
          # re: PostgreSQL 數(shù)據(jù)庫性能提升的幾個(gè)方面
          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"/>  回復(fù)  更多評論
            
          # re: PostgreSQL 數(shù)據(jù)庫性能提升的幾個(gè)方面
          # re: PostgreSQL 數(shù)據(jù)庫性能提升的幾個(gè)方面
          2014-10-15 11:05 | pt

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

          http://blog.csdn.net/majian_1987/article/details/9316213  回復(fù)  更多評論
            
          # re: PostgreSQL 數(shù)據(jù)庫性能提升的幾個(gè)方面
          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  回復(fù)  更多評論
            
          # re: PostgreSQL 數(shù)據(jù)庫性能提升的幾個(gè)方面
          2015-05-05 16:41 | pt
          # re: PostgreSQL 數(shù)據(jù)庫性能提升的幾個(gè)方面
          # re: PostgreSQL 數(shù)據(jù)庫性能提升的幾個(gè)方面

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


          網(wǎng)站導(dǎo)航:
           
          <2015年4月>
          2930311234
          567891011
          12131415161718
          19202122232425
          262728293012
          3456789

          常用鏈接

          留言簿(5)

          隨筆分類(8)

          隨筆檔案(8)

          文章分類(1)

          文章檔案(1)

          其他

          娛樂

          技術(shù)

          搜索

          •  

          積分與排名

          • 積分 - 116287
          • 排名 - 503

          最新隨筆

          最新評論

          評論排行榜

          主站蜘蛛池模板: 贺兰县| 曲水县| 丰原市| 新竹市| 香格里拉县| 泰宁县| 福泉市| 防城港市| 体育| 手游| 大竹县| 弥勒县| 黑龙江省| 卫辉市| 房产| 凯里市| 分宜县| 宁海县| 定日县| 万载县| 九龙城区| 永平县| 时尚| 玉环县| 绥化市| 惠州市| 新民市| 阿巴嘎旗| 德昌县| 衡东县| 雅江县| 同仁县| 鄯善县| 师宗县| 延长县| 文登市| 博罗县| 遵化市| 玉溪市| 高邮市| 彩票|