对于列压缩选项,PostgreSQL 14提供了新的压缩方法LZ4。与TOAST中现有的PGLZ压缩方法相比,LZ4压缩更快。本文介绍如何使用整个选项,并和其他压缩算法进行性能比较。 背景 PG中,页是存储数据的单位,默认是8KB。一般情况下,一行数据不允许跨页存储。然而,有 ...
在Oracle或MySQL中,当执行到DDL语句时,会隐式的将当前回话的事务进行一次“COMMIT”操作,因此在MySQL或Oracle中执行DDL语句时,应该严格地将DDL和DML完全分开,不能混合在一起执行。 在PG中,DDL语句是可以被回滚的。
当发起“select * from XXX”时,数据会加载到操作系统缓存然后才到shared buffer。PostgreSQL缓存读顺序share_buffers -> 操作系统缓存 -> 硬盘。同样当将脏页向磁盘刷写时,也是先到操作系统缓存,然后由操作系统调用fsync()将操作系统缓存中数据持久化到磁盘。这样PG实际 ...
一直好奇在PG中, 当输出错误日志时, 如何能够附带错误信息所在的源代码文件名以及发生错误的代码行数. postgres.conf中, log信息冗余级别为"default(默认)", terse: 表示更加简单的日志信息, verbose: 表示更加冗余的日志信息(即: 附带"文件名和行数) 修改后, 重启实例后 ...
PostgreSQL中的表会有一个RelFileNode值指定这个表在磁盘上的文件名(外部表、分区表除外)。一般情况下在pg_class表的relfilenode字段可以查出这个值,但是有一些特定表在relfilenode字段的查询结果是0,这个博客中将会探究这些特殊表relfilenode的内核处理。 正常表的 ...
2. 包含哪些KEY或VALUE,通过路径提取KEY或VALUE等。 3. 通过制定KEY提取VALUE, 通常通过KEY提取的VALUE还是JSON或JSONB类型,因为JSON本身就是嵌套的,但是可以通过json typeof得知它的类型。 json_typeof(json) jsonb_typeof(jsonb) 但是SQL还是认为他是个JSON,要么就是转换为TEXT。
比如一个普通用户,定义了一个函数是调用者权限的,当超级用户调用这个函数时,会以超级用户的权限来执行,可以为所欲为。 因此可能被普通用户用来设计陷阱。 正文 现在数据库中有两个用户,一个超级用户一个普通用户。 某些表是普通用户创建的,某些 ...