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

1.2 使用PostgreSQL还是其他数据库

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

对于某些类型的Web应用程序而言,用户只能通过PostgreSQL所不允许的对数据完整性的功能进行剪裁的方法以获得一些可接受的性能表现。这些程序可能在类似MySQL这样的并不严格的数据库或者严格度最小的SQLite中表现得很好。与相对成熟的数据仓库市场所不同的是,这种类型的应用程序设计还是经常使用的。在本书编写之时,有关基于键值(key-value-based)的NoSQL环境(包括CouchDB、MongoDB和Cassandra)越来越受欢迎。如果对处理此类键/值存储相关的高级查询的运行时间不怎么敏感时,那么这些方法可以很容易地超越那些传统的数据库。

但对于很多在这两个极端之间的那些“正常的”数据库用例来说,PostgreSQL的性能在8.3版本当中达到了这样的一种程度:其情况很可能是在数据库成为限制因素之前需要面对的硬件或应用程序设计的限制。此外,某些PostgreSQL的传统优势,如处理复杂查询以及其深度的可编程性,这些都将继续存在。

时间: 2024-09-10 01:24:19

《PostgreSQL 9.0性能调校》一一1.2 使用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.4 PostgreSQL应用程序扩展生命周期

1.4 PostgreSQL应用程序扩展生命周期 虽然每一个应用程序都有其独特的发展方向,但是我们也会发现有必要作为使用PostgreSQL数据库的应用程序的一些共同技术变得更为频繁.本书中的章节分别关注这一过程的常见方面.运行数据库服务器的步骤一般如下. (1)决定服务器运行的硬件条件.理想情况下,用户将测试能够满足预期条件的硬件. (2)建立数据库磁盘的布局:RAID级别.文件系统以及硬盘上可能的表/索引的布局. (3)优化服务器配置. (4)监控服务器性能和查询执行的情况. (5)提高查询

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

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

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

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

PostgreSQL 10.0 preview 性能增强 - hash index metapage cache、高并发增强

标签 PostgreSQL , 10.0 , hash index 背景 hash index是PostgreSQL中一个非常老的索引访问方法,也是非常经典的索引. hash index中存储的是索引字段的hash value,而不是原始值,btree索引中存储的是原始值. 因此,当字段非常大时,btree索引可能无法使用. 例如 postgres=# create table test_hash_btree(c1 text); CREATE TABLE postgres=# insert in