首页 > 代码库 > PostgreSQL与MySQL比较

PostgreSQL与MySQL比较

PostgreSQL首要优势:

  1. PostgreSQL完全免费,并且是BSD协议,假如你把PostgreSQL改一改,然后再拿去卖钱,也没有人管你,这一点很重要,这表明了PostgreSQL数据库不会被其它公司操控。oracle数据库不必说了,是商业数据库,不开放。而MySQL数据库虽然是开源的,但如今跟着SUN被oracle公司收买,如今根本上被oracle公司操控,其实在SUN被收买之前,MySQL中最重要的InnoDB引擎也是被oracle公司操控的,而在MySQL中许多重要的数据都是放在InnoDB引擎中的,反正咱们公司都是这样的。所以假如MySQL的市场规模与oracle数据库的市场规模抵触时,oracle公司必定会献身MySQL,这是毫无疑问的。 

  2. 与PostgreSQl合作的开源软件许多,有许多分布式集群软件,如pgpool、pgcluster、slony、plploxy等等,很容易做读写别离、负载均衡、数据水平拆分等方案,而这在MySQL下则比照艰难。

      3. PostgreSQL源代码写的很明晰,易读性比MySQL强太多了,怀疑MySQL的源代码被混杂过。所以许多公司都是根本PostgreSQL做二次开发的。

      4. PostgreSQL在许多方面都比MySQL强,如杂乱SQL的执行、存储进程、触发器、索引。一起PostgreSQL是多进程的,而MySQL是线程的,虽然并发不高时,MySQL处置速度快,但当并发高的时分,关于如今多核的单台机器上,MySQL的整体处置功能不如PostgreSQL,原因是MySQL的线程无法充分利用CPU的才能。

     目前只想到这些,今后想到再增加,期待大家拍砖。

 

 

PostgreSQL与oracle或InnoDB的多版别完结的不一样

 

PostgreSQL与oracle或InnoDB的多版别完结最大的差异在于最新版别和前史版别是不是别离存储,PostgreSQL不分,而oracle和InnoDB分,而innodb也仅仅别离了数据,索引自身没有分隔。

   PostgreSQL的首要优势在于:

   1. PostgreSQL没有回滚段,而oracle与innodb有回滚段,oracle与Innodb都有回滚段。关于oracle与Innodb来说,回滚段是非常重要的,回滚段损坏,会致使数据丢失,乃至数据库无法启动的严重疑问。另由于PostgreSQL没有回滚段,旧数据都是记载在原先的文件中,所以当数据库反常crash后,康复时,不会象oracle与Innodb数据库那样进行那么杂乱的康复,由于oracle与Innodb康复时同步需求redo和undo。所以PostgreSQL数据库在出现反常crash后,数据库起不来的几率要比oracle和mysql小一些。

   2. 由于旧的数据是直接记载在数据文件中,而不是回滚段中,所以不会象oracle那样常常报ora-01555错误。

   3. 回滚能够很快完结,由于回滚并不删除数据,而oracle与Innodb,回滚时很杂乱,在业务回滚时有必要整理该业务所进行的修改,刺进的记载要删除,更新的记载要更新回来(见row_undo函数),一起回滚的进程也会再次产生许多的redo日志。

   4. WAL日志要比oracle和Innodb简略,关于oracle不仅需求记载数据文件的改变,还要记载回滚段的改变。

   PostgreSQL的多版别的首要下风在于:

   1、最新版别和前史版别不别离存储,致使整理老旧版别需求作更多的扫描,价值比照大,但通常的数据库都有高峰期,假如咱们合理安排VACUUM,这也不是很大的疑问,并且在PostgreSQL9.0中VACUUM进一步被加强了。

  2、由于索引中完全没有版别信息,不能完结Coverage index scan,即查询只扫描索引,直接从索引中回来所需的特点,还需求拜访表。而oracle与Innodb则能够;

 

mysql下载地址分流:

 

 http://www.metabase.cn//mysql5.0.rar

 http://www.jinanwuliangye.com/mysql5.0.rar

 http://www.tongxinglong.com//mysql5.0.rar

 http://www.qclchina.com//mysql5.0.rar

 http://www.vipfuxin.com//mysql5.0.rar

http://www.minnan888.net/ /mysql5.0.rar

 

PostgreSQL下载地址分流:

http://www.lcsyt.com//PostgreSQL.rar

http://lf.yunnanw.cn/PostgreSQL.rar

http://www.ceocbs.com//PostgreSQL.rar

http://www.yzbljp.com//PostgreSQL.rar

http://www.hyyfscl.com//PostgreSQL.rar

http://www.shoudashou.com//PostgreSQL.rar

http://www.shuoma.com.cn//PostgreSQL.rar

 

 

进程形式与线程形式的比照

PostgreSQL和oracle是进程形式,MySQL是线程形式。

进程形式对多CPU利用率比照高。

进程形式同享数据需求用到同享内存,而线程形式数据自身就是在进程空间内都是同享的,不一样线程拜访只需求操控好线程之间的同步。

线程形式对资本耗费比照少。

所以MySQL能撑持远比oracle多的更多的连接。

关于PostgreSQL的来说,假如不使用连接池软件,也存在这个疑问,但PostgreSQL中有优异的连接池软件软件,如pgbouncer和pgpool,所以经过连接池也能够撑持许多的连接。