1.Postgresql允许用户定义基于正规的sql类型的新类型,允许数据库自身理解复杂数据。
例如,你可以定义一个address
来组合一些事物如街道编号、城市和国度的字符串。从这一点上你可以轻易的建立把保存地址的所需要的所有字段包含在一个单一行列中的表。
2.Postgresql还允许类型包括继承,这是在面向对象编程中的主要概念。
3.在Postgresql中程序员可以用一组可观的支持语言中任何一种来写这种逻辑。
4.序员可以把代码作为函数插入服务器中,它是使代码类似于存储过程的一个小包装器。以这种方式sql代码可以调用(比如)C代码或反之。
5.Postgresql用的是多版本并发控制机制(Multiversion concurrency control),它的特点在于读操作在数据库中不会产生锁,读操作不影响 写操作,写操作不影响读操作。只有在两个或多个事务试图同时更新同一条记录时才会有等待出现。这种机制可以减少数据库中的锁竞争情况,提高数据库的吞吐量。
6.Postgresql使用的是基于成本的优化器(Cost based optimizer)。理论上基于成本的优化器会计算用户输入的查询语句的每个合法的查询计划的执行成本,然后从中选择成本最小的计划作为执行查询语句的最终计划。 在实际应用中,查询语句的合法的查询计划的个数是随查询复杂度的增加呈指数增长的。对于过于复杂查询,如果遍历每个合法的查询计划,将会消耗掉大量的时间,这是不能被用户接受的,所以优化器不会遍历每个合法的查询计划,只会选择一部分查询计划,从中找到执行成本最小的计划。
原文链接:https://www.f2er.com/postgresql/196990.html