技术开发 频道

Oracle和MySQL、PostgreSQL特性对比

   
    在前面对数据库的比较中,我们提到了几种不同的特征,比如触发器,视图和存储过程。虽然在Oracle,Postgresql和MySQL中这几个特征集彼此之间有所不同,但是你遇到的大部分应用都是集中在这几个方面。这一次,我们将讨论这几个平台之间存在明显差异的一些东西,最重要在于它们处理SQL复合语句和优化选择的方式上。

SQL复合语句(优化引擎)
    不管你选择哪个数据库,SQL语言都是你和数据库交互的最基本和最重要的方式。 这也正是这三个平台开始分道扬镳的地方。 Oracle支持大量复杂的查询,几乎是无限多的表和所有类型的联结以及组合。但这些充其量只是冰山一角,Oracle真正的王牌在于它的Cost Based Optimizer(基于代价的优化器),它分析SQL语句,如果可能的话会重写和简化它,基于代价选择索引,根据驱动表和其他一些神秘的方式来做出决定。

    读一下MySQL的文档你就会发现性能偏见的来源,这些是厂家细节类型,它使得性能优化和性能调节在任何平台上都很复杂。MySQL能够处理的任何JOIN或者VIEW语句的固定最大值是61张表。 我个人又有点疑问,不管怎么说,应用程序中表太多了处理起来会更困难,所以正如前面所说,确实是优化器而不是能够查询的最大表规格占上风,等等。

    Postgresql 8.x版支持所有的SQL92规范,几乎没有什么限制。 我再次认为,一种数据库优于其他数据库在于优化程序方面做得好。复合查询很麻烦,所以查询策略就成了你分析性能瓶颈的最好参考。
0
相关文章