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