第1章 PostgreSQL版本

众所周知,PostgreSQL具有丰富的功能集和非常稳定的软件版本。其默认的安全配置既被安全人员称赞又因其复杂的学习过程而被诟病。SQL规范的一致性和数据完整性只允许通过严格的方式与数据库进行交互,这会使那些时常使用相对宽松的桌面数据库软件的用户感觉到非常不适应。但是所有的一切都有其自身一定的道理。

运行速度慢是另外一个让PostgreSQL出名的原因。时至今日,仍然有一些事实能证明这一点。往往有很多使用“正确的方法”数据库操作会比用其他的方法的操作需要更长的时间。例如,对于“2009年2月29日”这样一个日期而言,由于2009年不是闰年,因此这一天并没有任何意义。在实际生活中,不可能有这一天,而且也不会在这一天发生任何事。如果要让数据库向标准的日期字段中写入这个值,那确实可以,也很快速。或者,数据库可以检测这个日期是否能够有效存入目标字段,注意到在常规的日历里,没有这样的日期,它可以拒绝用户的修改。这样数据库执行的速度就稍微慢一些。PostgreSQL由一些不想抄近路做事的人设计,并且是为了这些人而设计,他们希望能够把事情做得更快和更简单。在用户只能通过一种方法来正确处理某个事物的情况下,那可能是惟一可用的方法。

然而,一旦进行了合理的实施之后,还可以回过头对它进行优化。在过去的几年中,这已经成为PostgreSQL的模式。PostgreSQL经常通过解决这些小问题来大幅提高数据库性能。其中一部分很好的设计远胜过更简单的方法,这当中由于复杂性的引入甚至付出了相当的开销。这是一种相当新的现象,一定程度上解释了为什么PostgreSQL相比其他竞争对手而言,是个速度较慢的数据库。

2005年11月,PostgreSQL发布了其8.1版本。该版本中包含了众多内部结构的改进,其中一些期望能够提高多个活动客户端在多处理器系统下的数据库性能。其结果是在处理沉重工作负荷时,数据库能力得到成比例的提高。在如今的硬件设备上进行的基准评测,突出地显示了其对先前版本的跨越。可以在 ...

Get PostgreSQL 9.0性能调校 now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.