PostgreSQL DBA(106) - pgAdmin(Don't do this:NOT IN)
no zuo no die系列,来自于pg的wiki。 这是第四部分,不要使用NOT IN。
PostgreSQL DBA(105) - pgAdmin(Don't do this:psql&inheritance)
no zuo no die系列,来自于pg的wiki。 这是第三部分,包括psql登录时无需带-W/--password参数以及不要使用继承表(inheritance)。
PostgreSQL DBA(104) - pgAdmin(Don't do this:Rule)
no zuo no die系列,来自于pg的wiki。 这是第二部分,不要使用rule。
PostgreSQL DBA(103) - pgAdmin(Don't do this:Encoding)
no zuo no die系列,来自于pg的wiki。 这是第一部分,关于数据库编码,不要使用SQL_ASCII字符集编码
PostgreSQL DBA(102) - pgAdmin(Row Level Security)
PostgreSQL提供了Row Level Security(RLS)来控制哪些行可以访问或修改。
PostgreSQL DBA(101) - pgAdmin(statement timeout)
在执行SQL的时候可能会碰到session hang的情况,这时候我们其实不知道是因为SQL本身执行很慢还是因为lock导致hang,因此一般情况下需要通过查询pg_stat_activity、pg_locks等系统表来确认。除之之外,PG还提供了通过statement timeout的超时机制来处理这种情况。
PostgreSQL DBA(100) - Linux(Huge Pages)
PostgreSQL通过参数huge_pages设置是否启用大页,利用常驻内存用以提升性能,本节简单介绍了Linux中Huge Pages的相关设置。
PostgreSQL DBA(99) - Develop(generate random string)
为了验证TOAST的相关功能,通过lpad、rpad等方式由于重复率太高看不出效果,因此需要生成随机字符串来填充数据。
PostgreSQL DBA(98) - PG 12 Faster float conversion to text
PostgreSQL 12之前的版本浮点数是通过四舍五入到特定的数字来输出的,由参数extra_float_digits控制。这种方法对于查询有实数列或双精度列的大表时的输出速度较慢。在PG12中,十进制表示输出是作为精确的原始二进制值重新输入的最短输出。
PostgreSQL DBA(97) - System Conf(huge_pages)
PostgreSQL提供了参数huge_pages用以使用OS的huge pages,默认为try,即可用就用,用不了就不用。使用HUGE PAGE其中一个原因是因为HUGE PAGE是常驻内存的,不会被交换出去。
PostgreSQL DBA(96) - System Conf(client_min_messages)
PostgreSQL提供了参数client_min_messages用以控制返回给客户的消息级别,不同的级别返回的消息大小不同,默认为NOTICE。在通常情况下,如果客户端执行的SQL语句不频繁的话,使用默认参数即可,但如果客户端执行大量的SQL,设置该参数为较高级别就显得有意义了:可以减少消息的大小从而降低网络负载,提升吞吐。
PostgreSQL 源码解读(229)- Linux Kernel(进程虚拟内存#3)
PostgreSQL使用进程架构,每个连接对应一个后台进程,为了更好的理解这种架构,有必要深入理解进程的相关知识.本节主要介绍了Linux下的进程虚拟内存结构,并以使用C语言样例程序进行说明.
Oracle vs PostgreSQL Develop(18) - Boolean
在Oracle和PG中都可以使用int类型模拟布尔类型,但通过JDBC接口(JDBC驱动,Oracle为11.2.0.4,PG为9.3)获取出来的值却不一致,这一点需要注意。
PostgreSQL DBA(95) - PG 12 Partition(out of shared memory)
PostgreSQL 12 Beta3,创建包含8192个子分区的分区表,执行查询语句,在分区键上排序,出错。
PostgreSQL DBA(94) - PG 12 Improving Partition(Select)
PG 10在分区表上执行查询时,会逐个检查每个分区的约束来看是否需要,如果分区很多在计划阶段会有较大的性能损失。PG 11通过”partition pruning“算法来快速的标识匹配的分区来改进性能,但PG 11仍然做了一些不必要的处理比如不管是否涉及仍然加载了所有分区的元数据。 PG 12更进一步,那就是在pruning后才加载元数据,如果不涉及大多数的分区那么在计划阶段可以带来明显的性能提升。
PostgreSQL DBA(93) - PG 12 Improving Partition(Insert)
PG 11在插入分区表时,无论涉及多少个分区都会锁住每个分区,如果分区数很多,会存在性能问题.在PG 12,只需要对涉及的分区上锁,也就是说如果只插入一行,则只需要锁一个分区.这种变化还与分区元组路由代码的完全重写相结合,大大减少了在executor启动期间设置元组路由数据结构的开销。
PostgreSQL 源码解读(228)- Transaction(事务系统简介)
本节是PostgreSQL 事务管理的简要说明,翻译自README文件.
PostgreSQL 源码解读(227)- Linux Kernel(进程虚拟内存#2)
PostgreSQL使用进程架构,每个连接对应一个后台进程,为了更好的理解这种架构,有必要深入理解进程的相关知识.本节主要介绍了Linux下的进程虚拟内存结构,并以使用C语言样例程序进行说明.
CentOS 7升级内核简要说明
1.更新源 yum update rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-4.el7.elrepo.noarch.rpm 2.确认目前的版本信息 uname -r 3.删除相关组件 yum remove k
PostgreSQL DBA(92) - PG 12 Improving VACUUM
VACUUM命令在PG 12有所增强,提供新的Option可供选择,本节介绍了其中一个选项:INDEX_CLEANUP