postgresql 查看表建立哪些索引

您所在的位置:网站首页 pg数据库表空间的上限 postgresql 查看表建立哪些索引

postgresql 查看表建立哪些索引

2023-05-11 07:24| 来源: 网络整理| 查看: 265

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

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

工作的内容,以下都是基于 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)

PostgreSQL安装:

一、windows下安装过程

安装介质:postgresql-913-1-windowsexe(46M),安装过程非常简单,过程如下:

1、开始安装:

2、选择程序安装目录:

注:安装 PostgreSQL 的分区最好是 NTFS 格式的。PostgreSQL 首要任务是要保证数据的完整性,而 FAT 和 FAT32 文件系统不能提供这样的可靠性保障,而且 FAT 文件系统缺乏安全性保障,无法保证原始数据在未经授权的情况下被更改。此外,PostgreSQL 所使用的"多分点"功能完成表空间的这一特征在FAT文件系统下无法实现。

然而,在某些系统中,只有一种 FAT 分区,这种情况下,可以正常安装 PostgreSQL,但不要进行数据库的初始化工作。安装完成后,在 FAT 分区上手动执行 initdbexe 程序即可,但不能保证其安全性和可靠性,并且建立表空间也会失败。

3、选择数据存放目录:

4、输入数据库超级用户和创建的OS用户的密码

注:数据库超级用户是一个非管理员账户,这是为了减少黑客利用在 PostgreSQL 发现的缺陷对系统造成损害,因此需要对数据库超级用户设置密码,如下图所示,安装程序自动建立的服务用户的用户名默认为 postgres。

5、设置服务监听端口,默认为5432

6、选择运行时语言环境

注:选择数据库存储区域的运行时语言环境(字符编码格式)。

在选择语言环境时,若选择"default locale"会导致安装不正确;同时,PostgreSQL 不支持 GBK 和 GB18030 作为字符集,如果选择其它四个中文字符集:中文繁体 香港(Chinese[Traditional], Hong Kong SAR)、中文简体 新加坡(Chinese[Simplified], Singapore)、中文繁体 台湾(Chinese[Traditional], Taiwan)和中文繁体 澳门(Chinese[Traditional], Marco SAR),会导致查询结果和排序效果不正确。建议选择"C",即不使用区域。

----我选择了default localt,安装正确;建议选择default localt。

7、安装过程(2分钟)

8、安装完成

安装完成后,从开始文件夹可以看到:

在安装目录可以看到:

其中:data存放数据文件、日志文件、控制文件、配置文件等。

uninstall-postgresqlexe用于卸载已安装的数据库管理系统。

pg_envbat里配置了数据库的几个环境变量,内容如下:

二、pgAdmin(大象)

对于每种数据库管理系统,都有相当多的设计与管理工具(可视化界面管理工具),有的是数据库厂商自己提供的(一般都至少有一个),有的是第三方公司开发的,你甚至可以自己写一个简单易用的管理工具。例如Oracle的Oracle SQL Developer(自己开发的)、PLSQL Developer(第三方公司开发的)、SQL Server Management Studio(自己开发的)、>

真的很好!我们公司在用它!

首先它是面向对象的关系数据库,表继承解决了我们产品分类库的问题,这个在主流数据库中很难见得。其次,91版开始windows下的Postgresql搭配Server效率提高了不少啊!且函数、触发器的plpgsql语言非常好,况且还远远不是唯一的选择。再次,它的PostGIS模块是海量开源GIS数据的默认引擎,支持许多有用的计算,以及空间索引,经过我亲自测试,100GB的 PlanetOSM全球数据跑的很稳定。

最后,他的安装、卸载要比Oracle等简单的多,windows xp home上都跑的飞快(需要对表空间的权限用额外的工具修改)。

安装注意:

如果是Linux没有什么要注意的,直接 apt 或者yum即可。

中文windows下, 安装时的Locale 要选择"C",而不是默认(Zh-cn),否则可能安装失败。

创建表空间时,要手工在资源管理器里创建文件夹,而后把资源管理器的“工具”--》文件夹选项里的“查看”-->使用简单文件夹共享 勾掉(不选),而后右键单击新建的文件夹,打开属性,在"安全"页面添加用户postgres为全权限访问,否则表空间创建失败。

以上就是关于postgresql 查看表建立哪些索引全部的内容,包括:postgresql 查看表建立哪些索引、如何安装PostgreSQL、postgresql怎么样等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址:https://outofmemory.cn/sjk/10138558.html



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3