Oracle、MySQL和PostgreSQL的功能比较

本文对比了Oracle、MySQL和PostgreSQL在存储过程、视图、物化视图、触发器和安全方面的特性。所有这三种数据库支持存储过程和视图,Oracle在物化视图和存储过程方面更为强大,而PostgreSQL和MySQL也有相应的实现。在安全性方面,三者都提供密码保护和数据加密,Oracle提供更高级别的功能如虚拟专用数据库。在复杂SQL和优化方面,Oracle以其成本优化器和广泛索引类型领先,而PostgreSQL的优化器表现也很出色。MySQL在某些方面受到限制,如最大连接表数量,但在实际应用中仍能满足大部分需求。
摘要由CSDN通过智能技术生成

  本文在安全、触发器、视图、物化视图和存储过程方面对Oracle、MySQL和PostgreSQL进行了比较……
  【IT专家网独家】随着现代数据库中可以被使用的功能的蓬勃发展,已经很难将它们从数据库中分离出来。例如在Oracle中有许多高级的数据仓库功能,这些功能你可能永远都不需要。此外,还可能有一些其它的功能例如你不能没有的ACID遵从性事务。我们将介绍主要的功能,例如存储过程、视图、快照、表数据类型、事务等等。我们将对比Postgresql、MySQL和Oracle,看哪些能够满足你的需要。

  存储过程

  有人支持、也有人反对在数据库中保存应用程序代码。在这个问题上我保持基本公正的态度,所以我会试着从双方来讨论。当你开始将应用程序代码放置到数据库中时,你就变得极其不轻便。在你将你的应用转向另一个数据库时,这个代码将会被重写。但是它放置在数据库上意味着它还可以充分利用和紧密连接这个引擎。在某些情况下在数据库中存储代码可以显著的提高速度。比如你在对数据进行了某些策略后需要更新百万行的数据中的绝大部分。

  在一个存储过程中数据是在一步中被读取、操纵和更新的。而如果你在应用程序代码的中间层做相同的操作,那么你需要将数据通过网络传送过去,进行操作和将它发送回来。这不只会减慢这一个任务,其它在竞争和它使用的相同的数据的操作很可能就要等待了,因为这个数据处于传送过程中,而且将被执行操作。此外,存储过程的代码可以提供服务对特定的请求进行封装,这对简化你的整个应用程序来说是非常宝贵的。这三个数据库都支持存储过程和函数。Oracle还支持存储过程的包或集合,还包括各种面向对象的功能,这些功能几乎没有人使用过。一个数据库引擎实际上在存储过程和内嵌在那里的SQL代码之间进行上下文切换。在9i中,Oracle推出了批量绑定,这样你就可以对行的大型集合进行操作,并一次就更新整个集合,而不是在每个循环迭代中进行更新。这个功能甚至还可以非常显著的进一步提高性能。

  视图

  视图是基本的存储查询,正因为如此,它执行起来不是特别复杂。然而在查询中使用视图时,它们必定会使查询更加复杂。所以很明显,使用数据库中的视图之前,要更新子查询。Oracle显然提供视图有段时间了。在MySQL5.0中,也支持视图了。像

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值