pg sql 怎么查出list

pg sql 怎么查出list,第1张

该系统表存储有关数据库认证的角色信息,在PostgreSQL中角色可以表现为用户和组两种形式。对于用户而言只是设置了rolcanlogin标志的角色。由于该表包含口令数据,所以它不是公共可读的。PostgreSQL中提供了另外一个建立在该表之上的系统视图pg_roles,该视图将口令字段填成空白

当一个表的数据存在每时每刻新增时,创建索引,需要使用在线创建索引语句,否则会创建失败或锁表。

(虽然添加了concurrently这个选项,但还是会锁表的,只是一部分一部分的锁)。

可以去你数据库的data数据位置(pgsql安装完成后initdb的位置),里面有一个postgresqlconf文件,搜索port,如果“port = xxxx”前没有#(#为注释内容,不生效的),说明你的数据库配置的端口号就是这个,如果有#,采用默认的端口号:5432

另外这个路径下还有一个postmastepid(前提是你的数据库已经启动了),打开可以看到启动的数据库所占端口号。

以上内容windows和linux版都一样

在数据库运维工作中,经常会有数据目录使用率较高需要调整的情况,通常会给数据库建立多个表空间

并分别位于不同的盘上,这时需要做的工作就是调整库中现有表和索引的表空间,下面简单总结下这块维护

工作的内容,以下都是基于 PostgreSQL 901 做的测试。

一 查询某个表所在表空间的简单方法

PostgreSQL 提供类似" \ "命令很方便得到相关信息,命令如下:

skytf=> \d test_2

Table "skytftest_2"

Column | Type | Modifiers

--------+-----------------------+-----------

id | integer |

obj_id | integer | not null

name | character varying(64) |

Indexes:

"idx_hash_name" hash (name)

"idx_test_2" btree (id, obj_id)

Tablespace: "tbs_skytf_idx"

备注:如果这个表的表空间为当前数据库的默认表空间,那么上面则不会显示 Tablespace 信息,

相反,则会显示这张有的表空间,例如上面的表 test_2 的表空间为 tbs_skytf_idx,而

表空间 "tbs_skytf_idx" 不是数据库 skytf 的默认表空间, 那么如何查询数据库的默认

表空间呢,可以通过以下命令查询。

--11 查询数据库的默认表空间

skytf=> select datname,dattablespace from pg_database where datname='skytf';

datname | dattablespace

---------+---------------

skytf | 14203070

(1 row)

skytf=> select oid,spcname from pg_tablespace where oid=14203070;

oid | spcname

----------+-----------

14203070 | tbs_skytf

(1 row)

备注:通过以上查出数据库 skytf 的默认表空间为 tbs_skytf。

二 批量查询数据库表和索引的表空间

--21 查询表和索引所在的表空间

select relname, relkind, relpages,pg_size_pretty(pg_relation_size(aoid)), tbspcname

from pg_class a, pg_tablespace tb

where areltablespace = tboid

and arelkind in ('r', 'i')

order by arelpages desc;

备注:上面只取了部分结果,这个查询能够查询表和索引所处的表空间,但是有一点需要注意,这个查询

仅显示表空间不是数据库默认表空间的数据库对像,而我们通常需要查出位于数据库默认表空间的

对像,显然上面的查询不是我们想要的,接下来看另一个查询。

--22 查询位于默认数据库表空间的对像

select relname, relkind, relpages,pg_size_pretty(pg_relation_size(aoid)),reltablespace,relowner

from pg_class a

where arelkind in ('r', 'i')

and reltablespace='0'

order by arelpages desc;

备注:这个查询加入限制条件 reltablespace='0',即可查找出位于当前数据库默认表空间的

数据库表和索引。 通常这才是我们想要的结果,接下来可以把部分表转移到其它表空间上去,转移

的方法可以用 "ALTER TABLE move tablespace "或者重建索引移表空间等方法,这里不详细介绍。

--23 查询在某个表空间上的对像

select relname, relkind, relpages,pg_size_pretty(pg_relation_size(aoid)),reltablespace,relowner

from pg_class a, pg_tablespace tb

where arelkind in ('r', 'i')

and areltablespace=tboid

and tbspcname='tablespace_name'

order by arelpages desc;

--24 手册上对于 pgclass 视图的 reltablespace 字段解释

The tablespace in which this relation is stored If zero, the database is default tablespace is

implied (Not meaningful if the relation has no on-disk file)

select distinct Auuid from onecard_parking_cardhistory as A left join onecard_parking_bill as B

on Auuid=Buuid order by outgoingtime desc incoming

是的。PG数据库是postgrel数据库,⼀直在不同的数据库中使⽤,发现最后对每⼀种不同的数据库的条件使⽤上有⼀定的不同。使⽤的⽐较多的⼀个就是查询,各种查询。⽐如查询今天的数据、昨天的数据、⼀个⽉的数据。

以上就是关于pg sql 怎么查出list全部的内容,包括:pg sql 怎么查出list、Pg数据库在线增加索引、如何查看postgresql数据库端口号等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9399078.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-28
下一篇 2023-04-28

发表评论

登录后才能评论

评论列表(0条)

保存