《PostgreSQL 9.0性能调校》一一1.4 PostgreSQL应用程序扩展生命周期

1.4 PostgreSQL应用程序扩展生命周期

虽然每一个应用程序都有其独特的发展方向,但是我们也会发现有必要作为使用PostgreSQL数据库的应用程序的一些共同技术变得更为频繁。本书中的章节分别关注这一过程的常见方面。运行数据库服务器的步骤一般如下。

(1)决定服务器运行的硬件条件。理想情况下,用户将测试能够满足预期条件的硬件。

(2)建立数据库磁盘的布局:RAID级别、文件系统以及硬盘上可能的表/索引的布局。

(3)优化服务器配置。

(4)监控服务器性能和查询执行的情况。

(5)提高查询执行的效率,或创建索引以帮助加速。

(6)由于很难仅通过调整服务器来达到承受更多工作负荷,取而代之的是通过引入连接池以及高速缓存来减少对这方面的担忧。

(7)将数据复制到多个服务器,同时分布读取这些数据。

(8)将较大的表分区为片段。最终,实际上一个比较大的表可能需要被分割,以便能够同时写入到多个服务器当中。

此过程不是按部就班的。用户反复多次对服务器参数进行优化。这可能会出现在决定购买较新的硬件的情况下,而不是开始那些需要重新设计应用程序复制或分区操作工作。部分设计可能会在从最开始的阶段整合缓存到设计当中。其中重要的是需要意识到有很多的选项可选,并且去采集足够的有关系统能够达到的性能极限,以决定哪些变化是有帮助的数据。

时间: 2024-10-24 04:52:27

《PostgreSQL 9.0性能调校》一一1.4 PostgreSQL应用程序扩展生命周期的相关文章

《PostgreSQL 9.0性能调校》一一第1章 PostgreSQL版本

第1章 PostgreSQL版本 PostgreSQL 9.0性能调校众所周知,PostgreSQL具有丰富的功能集和非常稳定的软件版本.其默认的安全配置既被安全人员称赞又因其复杂的学习过程而被诟病.SQL规范的一致性和数据完整性只允许通过严格的方式与数据库进行交互,这会使那些时常使用相对宽松的桌面数据库软件的用户感觉到非常不适应.但是所有的一切都有其自身一定的道理. 运行速度慢是另外一个让PostgreSQL出名的原因.时至今日,仍然有一些事实能证明这一点.往往有很多使用"正确的方法"

《PostgreSQL 9.0性能调校》一一1.1 PostgreSQL历史版本的性能

1.1 PostgreSQL历史版本的性能 2005年11月,PostgreSQL发布了其8.1版本.该版本中包含了众多内部结构的改进,其中一些期望能够提高多个活动客户端在多处理器系统下的数据库性能.其结果是在处理沉重工作负荷时,数据库能力得到成比例的提高.在如今的硬件设备上进行的基准评测,突出地显示了其对先前版本的跨越.可以在http://suckit.blog.hu/2009/09/29/postgresql_history看到György Vilmos 对8.0版至8.4版的性能横向比较.

《PostgreSQL 9.0性能调校》一一1.6 小结

1.6 小结 PostgreSQL在近5年中取得了长足的发展.在建立了坚实的数据库基础后,众多开发人员向其添加了很多附加功能,在最近发布的版本中,所添加的功能和性能改进得到了很大提高.最新的PostgreSQL 9.0版本所添加的功能,使得复制和读取扩展比之前的版本变得更容易,人们期望能进一步加速这种适用于数据库的应用程序类型. PostgreSQL 8.1版本上的大量性能改进,尤其是在8.3版本中打破了一些关于与其竞争对手数据库服务器相对较慢的早期概念.还有一些情况,PostgreSQL的功能

《PostgreSQL 9.0性能调校》一一2.1 平衡硬件支出

2.1 平衡硬件支出 在生产环境中使用诸如PostgreSQL等开源数据库的一个原因是,用户本要花在软件授权上的每一分钱,都可以用在更好的硬件上.在用户的预算当中需要权衡的有三个主要部件:CPU.内存和包含相关磁盘控制器及重要部件的磁盘. 2.1.1 CPU 目前,在售的每个CPU内部都集成有至少两个.甚至多达八个核心,核心的数量能反映出大多数的数据库应用程序的一些优势.在决定使用哪一种CPU解决方案能够满足用户的数据库应用需求时,需要考虑两个基本的问题. 1.选哪一种处理器系列? 目前,Int

《PostgreSQL 9.0性能调校》一一2.2 可靠的控制器及磁盘安装

2.2 可靠的控制器及磁盘安装 PostgreSQL使用预写式日志(WAL,Write-Ahead Log)来写入数据以使数据库或硬件失效时能保存数据.这与其他数据库的日志缓存和REDO日志类似.数据库文档包含WAL的实施方法详见:http://www.postgresql.org/docs/current/static/wal.html. 以下内容引用自该文档. WAL主要的概念是改变数据文件(表和索引所在的)只能在这些变更被记录后才能进行的情况,也就是说,日志记录描述的是那些被刷新至永久存储

《PostgreSQL 9.0性能调校》一一1.2 使用PostgreSQL还是其他数据库

1.2 使用PostgreSQL还是其他数据库 当然也有其他的数据库解决方案会执行得好一些.例如,PostgreSQL缺失了一些在TPC-H测试套件当中较为复杂的查询能够得到较好执行的功能(具体内容详见第8章).因此,与一部分商业数据库相比较而言它不适用于运行在较大规模的数据仓库应用程序当中.如果用户需要进行类似TPC-H①包含的高负载查询时,就可能会发现诸如Oracle.DB2.SQL Server等数据库仍然有值得付出的性能上的优势.目前也有一些由PostgreSQL衍生出来的版本,包含了能

《PostgreSQL 9.0性能调校》一一1.3 PostgreSQL工具

1.3 PostgreSQL工具 如果用户习惯于数据库厂商提供的那些针对数据库本身的完整工具集,这些工具集所涵盖的范围从服务器管理到应用程序开发,那么PostgreSQL可能无法满足这部分用户的需求.与很多成功的开源项目一样,PostgreSQL视图持续专注于一些它所擅长的功能.这也就是开发社区所指的PostgreSQL核心:主要的数据库服务器,相关的工具可以作为数据库本身的一个部分进行开发.当有新的功能提出时,如果它们可能被建立和发布在"核心外",这是首选的方式.这种方式尽可能地保持

《PostgreSQL 9.0性能调校》一一2.3 小结

2.3 小结 架设一台高性能的数据库服务器是项艰苦的工作.在众多的质量等级和相应的成本开销下有许多独立的部件可用.也有许多的小细节需要用户做出正确决定,否则将有数据损坏的风险.幸运的是,用户不需要从零开始.一般的,知名的产品都有较好的性能表现,并且可靠性也较高,用户可以对数据库服务器做一个合理的预算.但也要对结果进行用户自身的基准评测.在运行中的数据库中,错误的配置也可以很容易破坏好的设备. CPU.内存和硬盘等硬件预算的分配,非常依赖于应用程序.仔细选择和配置控制器,同时,磁盘缓存是可靠数据库

PostgreSQL 10.0 preview 功能增强 - 匿名、自治事务(Oracle 兼容性)

标签 PostgreSQL , 10.0 , 匿名事务 , 自治事务 背景 PostgreSQL 10.0 通过session backendground实现了匿名事务,从此可以愉快的支持Oracle存储过程的自治事务了. 此前,我们需要通过dblink实现,或者通过匿名块+exception来实现,比较繁琐. <PostgreSQL Oracle 兼容性之 - plpgsql 自治事务(autonomous_transaction)补丁> <PostgreSQL Oracle 兼容性之