PostgreSQL自带Pgadmin客户端,可用于访问本地和远程PG库,一些tricks如下:
1、联合查询
SELECT * FROM table1 INNER JOIN table2 ON table1.id=table2.id # 其中table1,table2还可以分别用SQL选择如 SELECT * FROM (SELECT * FROM table1 where num1=2 limit 10 offset 0) a INNER JOIN (SELECT * FROM table2 where num2=4) b ON a.id=b.id
2、索引
# 查看pg库某表table1是否使用索引 SELECT * FROM pg_indexes WHERE tablename=‘table1‘ # 对table1的某一列或者几列创建索引 CREATE INDEX table1_index ON table1(num1, num2) # table_index为建立的索引名称 # 删除索引 DROP INDEX table1_index
2.1 复合索引
多列复合索引的创建建议:
1、离散查询条件(例如 等值)的列放在最前面,如果一个复合查询中有多个等值查询的列,尽量将选择性好(count(distinct) 值多的)的放在前面。
2、离散查询条件(例如 多值)的列放在后面,如果一个复合查询中有多个多值查询的列,尽量将选择性好(count(distinct) 值多的)的放在前面。
3、连续查询条件(例如 范围查询)的列放在最后面,如果一个复合查询中有多个多值查询的列,尽量将输入范围条件返回结果集少的列放前面,提高筛选效率(同时也减少索引扫描的范围)。
4、如果返回的结果集非常大(或者说条件命中率很高),并且属于流式返回(或需要高效率优先返回前面几条记录),同时有排序输出的需求。建议按排序键建立索引。
原文:https://www.cnblogs.com/zongfa/p/11638263.html