2014年7月2日

PSQL 指令快捷表

因為習慣mysql指令,就直接以mysql cmd來作為說明


角色role v.s. 使用者user
差異在角色無法登入;使用者可以登入
當給予角色登入權限後,和使用者沒什麼兩樣

資料庫database v.s. 模式schema
創建db時,即有預設的schema 「public」,除此之外還有表、函數、試圖、索引、序列等物件
資料庫是被模式來切分的
官方建議:該為連接到該資料庫的使用者建一個與使用者名相同的模式,然後將search_path設置為$user

資料庫database v.s. 表空間table
創建db時,即有預設的table 「pg_default」
原因是資料的創建是透過複製範本來實現,預設的範本是template1資料庫
完整語法如下
CREATE DATABASE dbname OWNER user TEMPLATE template1 TABLESPACE tablespacename;


my: show processlist;
psql: select * from pg_stat_activity;
there is a way to see all processes in PostgreSQL.


my: select * from table order by id limit 2,4
psql: select * from table order by id limit 4 offset 2
all id data = 1 ,2 ,3 ,4, 5, 6, 7 . it will show 3,4,5,6 


my: use dbname
psql: \c dbname;


my: --
psql: set search_path to schema_name,public;
搜索路徑為設定的schema

my: --
psql: \dn;
all shema list (there is no schema in mysql)


my: show tables;
psql: \d;


my: exit;
psql: \q










使用EXPLAIN確認效能
EXPLAIN select * from table_name;
      QUERY PLAN
-------------------------------
Seq Scan on table_name (cost=0.00..458.00 rows=1000 width=244)
1)預計啟動開銷
2)預計的總開銷
3)預計的該規畫節點輸出的行數
4)預計的該規畫節點的行平均寬度(字節)

系統表的查詢
select relpages,reltuples from pg_class where relname='table_name';
系統參數值
show cpu_tuple_cost;
cpu_tuple_cost
------------------
0.01

cost = 358(磁盤頁面數) + 10000(行數) * 0.01(cpu_tuple_cost系統參數值)
參考來源


timezone in postgreSQL
show timezone;
select name,abbrev,utc_offset,is_dst from pg_timezone_names;
查詢時區設定 (name = 'Asia/Taipei')
參考: 設定


trigger in postgreSQL
select * from pg_trigger;

\timing
顯示該cmd使用的時間




PostgreSQL Server 的配置文件是 postgresql.conf。此文件在数据库数据目录中,通常在 /var/lib/postgres/data 或是 /etc/postgresql/9.3/main


postgreSQL Server Log 通常在/var/log/postgresql.log
要開啟紀錄先在conf檔 log_statement = "all"
參考




沒有留言:

張貼留言