postgre和oracle性能对⽐,Oracle和MySQL、PostgreSQL特性
对⽐
随着现代数据库可⽤特征集的迅速增加,很难区分孰好孰坏。例如Oracle⾥就有许多你可能从来都不需要的⾼级数据仓库特征。此外也可能有⼀些其它不可或缺的特征⽐如ACID事务特性。我们来看⼀看主要的⼀些特征,⽐如存储过程,视图,快照,表数据类型和事务等等。同时我们分析⼀下Postgresql,MySQL和Oracle这⼏个数据库,然后出哪个能够满⾜你的需求。
登录ui图
存储过程
数据库⾥的存储应⽤程序肯定会有它的拥护者和贬低者。在这个问题上我还不清楚⾃⼰属于哪⼀类,所以我尽量对这两个⽅⾯都讨论。当你开始在数据库⾥放置应⽤程序代码时,你就处于了彻底不可移植的境地。你把应⽤程序移植到另⼀个数据库时,那段代码将不得不被重写。但是它对原来数据库的⾼度专⼀性意味着它可以利⽤那个引擎,和那个引擎紧紧捆绑在⼀起。有时候数据库⾥的存储代码要明显快得多。在对数据做了修改之后,你不得不更新⼀百万⾏的某些数据块。
在存储过程⾥,数据的读⼊、操纵和更新是⼀步完成的。然⽽你要在中间层应⽤程序中做同样事情的话,你就不得不通过⽹络发送数据集,完成数据操纵,然后将它发送回来。这不但使任务的速度变慢,
⽽且竞争同⼀数据的其他事务有可能不得不等待,因为它需要的数据正处于传送和操纵状态。存储代码也可以⽤来密封特定的请求,这对简化你整体的应⽤程序是很重要的。这三个数据库都⽀持存储过程和函数。Oracle还⽀持包,或者说是存储过程的集合以及⼏乎没有⼈⽤过的各种⾯向对象特征的集合。还要说明⼀点,⼀个数据库引擎实际上是在存储代码和嵌⼊在⾥⾯的SQL代码之间关联转换。Oracle 9i版本引⼊了成批绑定技术,所以你能够对许多⾏进⾏处理,并且能够⼀次性更新它们,⽽不是单个循环迭代。这个特征⼤幅度改善了性能。
进程和线程哪个重要
视图
视图基本上是存储查询,正因为如此执⾏起来才不会过度复杂。然⽽当⽤于查询时,他们必然会使查询复杂化。所以很明显,数据库在视图可⽤之前⼀定要⽀持⼦查询。Oracle很早就已经有视图了。从5.0版本开始,MySQL也已经⽀持视图。跟Oracle⼀样,MySQL也⽀持UPDATEABLE视图,但是有⼀些限制。Postgres也⽀持视图和UPDATEABLE视图。更详细的解释见Complex SQL部分。
物化图(快照)
不⽤说,Oracle对它们⽀持得⾮常好。作为⼀种新事物,物化图(我更喜欢快照这个可视化的术语,有点离题了)是⼀个周期性更新的副本或者是表的⼦集。可以把视图看做是查询的⼀个副本。直到下⼀次刷新,那个副本是静态的,没从主机那⼉更新的。通常要在更新频率和⽀持它的事务⽇志(⽐如索引)的
truncate delete区别维护之间做⼀个折衷。名义上,MySQL和Postgresql不⽀持物化图,然⽽互联⽹上有它的实现,可能会满⾜你的需求,你要是选择此⽅案的话就另外需要⼀些⽀持了。⼀个存储程序创建物化图,另⼀个存储过程刷新它。在本质上,⼀个CREATE TABLE语句就是AS SELECT..的拷贝。
mysql语句转oracle语⾔集成
如今,基于web的编程应⽤虽然使⽤了不同的数据库,却是完全平等的。⼏乎所有的web编程语⾔都⽀持这些数据库类型。
java程序设计在线阅读
Java,PHP,Perl,Python,C#/.NET,等等等等。尽情享受编程的乐趣吧!
writeas赵锦辛x黎朔触发器
MySQL,Oracle和Postgres都⽀持INSERT,UPDATE和DELETE操作的BEFORE和AFTER事件触发器。就我个⼈⽽⾔,除⾮万不得已我不会使⽤触发器。因为他们常常被忘记,有时反⽽给你添乱。少量使⽤的话,效果反⽽会很好。
所有这三个数据库都有它的脆弱性。软件肯定有⼀些死⾓故障隐藏其中,这是它的本性。此外,这三个数据库都会定期发布更新包。然⽽我个⼈的感觉是,开源意味着必然有更多的⽬光,并且经常更多的是挑剔的⽬光盯在程序上⾯。⽽且在开源世界⾥社区施加的压⼒要⼤得多。在商界,当修理费⽤远
远⾼于等待补丁的费⽤时,⼚家可以并且经常会耍⼿段。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。