差異處
這裏顯示兩個版本的差異處。
| 兩邊的前次修訂版 前次修改 | |||
| tech:psql_tips [2009/03/03 01:05] – jonathan | tech:psql_tips [2010/01/05 07:42] (目前版本) – jonathan | ||
|---|---|---|---|
| 行 1: | 行 1: | ||
| + | ====== PostgreSQL 效能調校技巧 ====== | ||
| + | 使用任何 DB , 如果發現 AP 的效能變差, | ||
| + | ===== - Index 要考慮加上 xxx_pattern_ops ===== | ||
| + | * 針對非英文語系的資料內容, | ||
| + | Exp : docmsg -> docsubject 的資料型態是 character varying(1024), | ||
| + | <code sql> | ||
| + | CREATE INDEX docmsg_docsubject_idx | ||
| + | ON docmsg | ||
| + | USING btree (docsubject); | ||
| + | </ | ||
| + | 發現使用以下的語法透過 Explain 是不會用到 docmsg_docsubject_idx 這個 index | ||
| + | <code sql> | ||
| + | select docsubject | ||
| + | from docmsg | ||
| + | where docsubject like ' | ||
| + | </ | ||
| + | 當 index 加上 pattern_ops 之後, 改成如下語法 | ||
| + | <code sql> | ||
| + | CREATE INDEX docmsg_docsubject_idx | ||
| + | ON docmsg | ||
| + | USING btree (docsubject varchar_pattern_ops); | ||
| + | </ | ||
| + | 在執行一次剛剛的 Explain SQL 指令, 就可以發現可以正確使用到這個 index | ||
| + | |||
| + | * 參考資料 : [[http:// | ||
| + | |||
| + | |||
| + | ===== - SQL 語法要考慮加上強制指定資料型態 ===== | ||
| + | * 針對 SQL 內條件部份, | ||
| + | Exp : xmlboxdocnum2 -> docdate 的資料型態是 character(10), | ||
| + | <code sql> | ||
| + | CREATE INDEX xmlboxdocnum2_docdate_idx | ||
| + | ON xmlboxdocnum2 | ||
| + | USING btree (docdate); | ||
| + | </ | ||
| + | 發現使用以下的語法透過 Explain 是不會用到 xmlboxdocnum2_docdate_idx 這個 index | ||
| + | <code sql> | ||
| + | select devorgid, | ||
| + | from xmlboxdocnum2 | ||
| + | where docdate >= current_date-7 | ||
| + | group by devorgid; | ||
| + | </ | ||
| + | 當加上 ::character varying 之後, 改成如下語法 | ||
| + | <code sql> | ||
| + | select devorgid, | ||
| + | from xmlboxdocnum2 | ||
| + | where docdate >= (current_date-7):: | ||
| + | group by devorgid; | ||
| + | </ | ||
| + | 在執行一次剛剛的 Explain SQL 指令, 就可以發現可以正確使用到這個 index | ||
| + | |||
| + | |||
| + | ===== - 主要欄位不應該允許 NULL ===== | ||
| + | * 如果要建立 index 的欄位內容出現 NULL , 是不會被加入這個索引資料內容, | ||
| + | |||
| + | ===== - 調整 postgresql.conf ===== | ||
| + | 當加大 RAM 之後, Exp RAM = 20G 也要一起調大以下參數.. | ||
| + | |||
| + | * 加大 **shared_buffers** , Exp. < | ||
| + | * 加大 **effective_cache_size** , Exp. < | ||
| + | |||
| + | ===== 參考網頁 ===== | ||
| + | * http:// | ||
| + | * http:// | ||
| + | |||
| + | |||
| + | {{tag> | ||