PostgreSQL 索引
当数据库中表的数据量很大时,可以通过索引提升数据库性能,索引是一种特殊的数据结构,用来加速数据的查找。索引本身会占用额外的存储空间,是典型的通过空间换取时间效率。PostgreSQL 支持丰富的索引类型,比如 btree 索引,Hash 索...继续阅读
当数据库中表的数据量很大时,可以通过索引提升数据库性能,索引是一种特殊的数据结构,用来加速数据的查找。索引本身会占用额外的存储空间,是典型的通过空间换取时间效率。PostgreSQL 支持丰富的索引类型,比如 btree 索引,Hash 索...继续阅读
PostgreSQL 支持表达式索引或者称之为函数索引,即索引列不是表的一个或多个字段,而是表的一个或多个字段上计算的函数或者表达式。这个特性可用于 where 条件中的字段包含函数或表达式的场景。1. PostgreSQL 函数索引示例举...继续阅读
PostgreSQL 提供了内置函数 pg_get_constraintdef() 用于获取外键约束的创建信息,该函数重建外键约束的创建命令,注意这是一个反编译的重建,而不是命令的原始文本。该函数的参数为外键约束的 oid,可在系统表 pg...继续阅读
外键又称为外键约束,英文 foreign key constraint,外键是一个表中用于标识另一张表中的一个字段或多个字段。包含外键的表称为引用表,外键引用表称为被引用表。外键约束是指引用字段必须在被引用字段中出现,被引用字段需要是唯一约...继续阅读
PostgreSQL 数据库支持触发器,可通过 create trigger 语句创建触发器。对于一个已经创建的触发器可以通过 pg_get_triggerdef() 函数获取其定义信息,如下所示:postgres=# select pg_...继续阅读
PostgreSQL 支持创建自定义函数,在 psql 中执行 \df 可以看到创建的自定义函数信息,如下postgres=# \dfList of functionsSchema | Name | Result data...继续阅读
PostgreSQL 数据库为了提升 I/O 性能,所有文件在逻辑上划分为页面(page)或者块(block),这些页面表示可以读取或写入的最小粒度,并且 PostgreSQL 内核针对页面做了很多算法优化,用来提升性能。默认页面大小为 8...继续阅读
索引在某些场景下能够提升查询性能,比如在字段(a,b)上添加一个索引,对于 where a=5 and b=6 这类查询能够使用该索引提升查询性能,但是另外一个场景 where a=5 or b=6 却不能使用该索引提升性能。针对以上问题,...继续阅读
PostgreSQL 表空间不像数据库(database)和模式(schema)能够决定对象的逻辑分布,表空间定义了数据的物理分布。表空间实际上是文件系统中的一个目录,可以把归档数据存储在慢磁盘的表空间中,活跃的经常更新的数据放在快磁盘的表...继续阅读
PostgreSQL B-tree 索引可以指定排序规则,比如升序或者降序,在特定场景下查询语句中包含 order by 时,当索引的排序规则与 order by 的顺序一致,则会显著提升查询性能。目前 PostgreSQL 只有 B-tr...继续阅读