首页 MySQL和PostgreSQL的对比选择

MySQL和PostgreSQL的对比选择

举报
开通vip

MySQL和PostgreSQL的对比选择 书书书 第 7 卷第 2 期 2 0 1 1 年 4 月 沈阳工程学院学报(自然科学版) Journal of Shenyang Institute of Engineering(Natural Science) Vol. 7 No. 2 Apr. 2011 收稿日期:2010 - 12 - 03 作者简介:刘 鑫(1979 -) ,男,沈阳人,讲师,硕士. MySQL 和 PostgreSQL 的对比选择 刘 鑫 (沈阳工程学院 计算机基础教学部,沈阳 110136) 摘 要:在 Linux 系...

MySQL和PostgreSQL的对比选择
书书书 第 7 卷第 2 期 2 0 1 1 年 4 月 沈阳 工程 路基工程安全技术交底工程项目施工成本控制工程量增项单年度零星工程技术标正投影法基本原理 学院学报(自然科学版) Journal of Shenyang Institute of Engineering(Natural Science) Vol. 7 No. 2 Apr. 2011 收稿日期:2010 - 12 - 03 作者简介:刘 鑫(1979 -) ,男,沈阳人,讲师,硕士. MySQL 和 PostgreSQL 的对比选择 刘 鑫 (沈阳工程学院 计算机基础教学部,沈阳 110136) 摘 要:在 Linux 系统下,通过对 MySQL 4. 0. 2-alpha与 PostgreSQL 7. 2 多方面的对比,从而 分析 定性数据统计分析pdf销售业绩分析模板建筑结构震害分析销售进度分析表京东商城竞争战略分析 两者的优缺点.其结果 显示:MySQL 适合 Windows操作系统,处理数据速度快;PostgreSQL 对数据完整性和严肃性要求高,对商业数据逻辑封 装性好,尤其是地理数据、密集运算、重型负载应用等优势特别明显,如果数据量很大且无法预测,推荐使用 PostgreSQL. 关键词:MySQL;PostgreSQL;封装 中图分类号:TP311 文献标识码:B 文章编号:1673 - 1603(2011)02 - 0171 - 04 1 MySQL和 PostgreSQL简介 MySQL 是一个小型关系型数据库管理系统,开发 者是瑞典 MySQL AB 公司,该公司在 2008 年被 Sun 公司收购,2009 年 Sun 公司又被 Oracle 公司收购. 目 前 MySQL 广泛地应用在 Internet上的中小型网站中. 因为其体积小,速度快,成本低,尤其是开放源码这一 特点,许多中小型网站为了降低网站总体拥有成本而 选择 MySQL 作为网站数据库. PostgreSQL 是一种特性非常齐全的自由软件的 对象-关系型数据库管理系统(ORDBMS) ,是以加州 大学计算机系开发的 POSTGRES,4. 2 版本为基础的 对象关系型数据库管理系统. POSTGRES 的许多领先 概念只是在比较迟的时候才出现在商业网站数据库 中. PostgreSQL 支持大部分的 SQL 标准 excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载 并且提供了很 多其他现代特性,如复杂查询、外键、触发器、视图、事 务完整性、多版本并发控制等.同样,PostgreSQL 也可 以用许多方法扩展,例如通过增加新的数据类型、函 数、操作符、聚集函数、索引方法、过程语言等.另外,因 为许可证的灵活,任何人都可以以任何目的免费使用、 修改和分发 PostgreSQL. 1)两者的共同优势. 两者都属于开放源码的一 员,性能和功能都在快速地提高和增强. MySQL 和 PostgreSQL 的开发者们都在力求把各自的数据库改 得越来越好,所以对于商业数据库来说,选用两者中的 任何一个都不能算是错误的选择. 2)两者不同的背景. MySQL 的身后是一个成熟 的商业公司,而 PostgreSQL 的身后是一个庞大的志愿 者开发组织.这使得 MySQL 的开发过程更为慎重,而 PostgreSQL 的反应更为迅速.这样 2 种背景直接导致 了各自特有的优点和缺点. 2 MySQL和 PostgreSQL优点对比 2. 1 MySQL的主要优点 1)维护者是 MySQL AB(现为 Oracle公司) ,首次 发布于 1996 年 11 月. 2)操作系统支持 WINDOWS、Linux、UNIX、MAC OS X、BSD. 3)基本功能上来看,MySQL 支持 ACID、关联完 整性、数据库事务、Unicode多国语言. 4)表和视图方面,支持临时表,而物化视图,可以 使用存储过程和触发器进行模拟. 5)索引方面,MySQL 的 MyISAM 表类型支持 R - /R + tree 索引,而哈希索引只能用在 MEMORY (即 Heap)、Cluster(NDB)、InnoDB 表类型. 6)其他对象上,MySQL 不支持数据域,支持存储 过程、触发器、函数、外部调用、游标. 7)数据表分区方面,从 5. 1 版本开始支持 4 种分 区,即范围、哈希、混合、列表. 8)从速度上来看,MySQL 通常要比 PostgreSQL 快得多. 9)流行度方面,MySQL 比 PostgreSQL 更流行. 10)适宜运行环境方面,MySQL 作为一个本地的 Windows应用程序运行,PostgreSQL 是运行在 Cygwin · 172· 沈阳工程学院学报(自然科学版) 第 7 卷 模拟环境下.那么在Windows下 PostgreSQL 运行没有 MySQL 稳定. 11)采用技术上看,MySQL 使用了线程技术,而 PostgreSQL 使用的是进程技术,MySQL 在不同线程之 间的环境转换和访问公共的存储区域明显要比在不同 的进程之间要快得多. 12)运行时间上看,MySQL 可以适应 24 /7 运行, 在绝大多数情况下,不需要为 MySQL 运行任何清除 程序. PostgreSQL 目前仍不完全适应 24 /7 运行,每隔 一段时间必须运行 1 次 VACUUM. 2. 2 PostgreSQL的主要优点 1)维护者是 PostgreSQL Global Development Group,首次发布于 1989 年 6 月. 2)操作系统支持 WINDOWS、Linux、UNIX、MAC OS X、BSD. 3)从基本功能上来看,支持 ACID、关联完整性、 数据库事务、Unicode多国语言. 4)表和视图方面,PostgreSQL 支持临时表,而物 化视图,可以使用 PL /pgSQL、PL /Perl、PL /Python 或 其他过程语言的存储过程和触发器模拟. 5)索引方面,全面支持 R - /R + tree 索引、哈希索 引、反向索引、部分索引、Expression索引、GiST、GIN(用 来加速全文检索) ,从 8. 3版本开始支持位图索引. 6)其他对象上,支持数据域,支持存储过程、触发 器、函数、外部调用、游标. 7)数据表分区方面,支持 4 种分区,即范围、哈 希、混合、列表. 8)从事务的支持度上看,对事务的支持与MySQL 相比,经历了更为彻底的测试. 9)MyISAM 表处理方式方面,MySQL 对于无事 务的MyISAM 表,采用表锁定,1 个长时间运行的查询 很可能会阻碍对表的更新.而 PostgreSQL 不存在这样 的问题. 10)从存储过程上看,PostgreSQL 支持存储过程, 而目前 MySQL 不支持. 因为存储过程的存在也避免 了在网络上大量原始的 SQL 语句的传输,这样的优势 是显而易见的. 11)子查询支持方面,MySQL 不支持子查询. 12)用户定义函数的扩展方面,PostgreSQL 可以 更方便地使用 UDF(用户定义函数)进行扩展. 3 MySQL和 PostgreSQL性能测试数据 Test 1:1000 INSERTs CREATE TABLE t1(a INTEGER,b INTEGER,c VARCHAR(100) ) ;INSERT INTO t1 VALUES(1, 13153,'thirteen thousand one hundred fifty three') ; INSERT INTO t1 VALUES(2,75560,'seventy five thousand five hundred sixty') ; … 995 lines omitted INSERT INTO t1 VALUES(998,66289,'sixty six thousand two hundred eighty nine') ; INSERT INTO t1 VALUES(999,24322,'twenty four thousand three hundred twenty two') ; INSERT INTO t1 VALUES(1000,94142,'ninety four thousand one hundred forty two') ; Test 1's result:PostgreSQL:4. 373 MySQL:0. 114 Test 2:25000 INSERTs in a transaction BEGIN; CREATE TABLE t2(a INTEGER,b INTEGER,c VARCHAR(100) ) ; INSERT INTO t2 VALUES(1,59672,'fifty nine thousand six hundred seventy two') ; … 24997 lines omitted INSERT INTO t2 VALUES(24999,89569,'eighty nine thousand five hundred sixty nine') ; INSERT INTO t2 VALUES(25000,94666,'ninety four thousand six hundred sixty six') ; COMMIT; Test 2's result:PostgreSQL:4. 900 MySQL:2. 184 Test 3:25000 INSERTs into an indexed table BEGIN; CREATE TABLE t3(a INTEGER,b INTEGER,c VARCHAR(100) ) ; CREATE INDEX i3 ON t3(c) ; … 24998 lines omitted INSERT INTO t3 VALUES(24999,88509,'eighty eight thousand five hundred nine') ; INSERT INTO t3 VALUES(25000,84791,'eighty four thousand seven hundred ninety one') ; COMMIT; Test 3's result:PostgreSQL:8. 175 MySQL:3. 197 Test 4:100 SELECTs without an index BEGIN; 第 2 期 刘 鑫:MySQL 和 PostgreSQL 的对比选择 · 173· SELECT count(* ) ,avg(b)FROM t2 WHERE b > = 0 AND b <1000; SELECT count(* ) ,avg(b)FROM t2 WHERE b > = 100 AND b <1100; … 96 lines omitted SELECT count(* ) ,avg(b)FROM t2 WHERE b > = 9800 AND b <10800; SELECT count(* ) ,avg(b)FROM t2 WHERE b > = 9900 AND b <10900; COMMIT; Test 4's result:PostgreSQL:3. 629 MySQL:2. 760 Test 5:100 SELECTs on a string comparison BEGIN; SELECT count(* ) ,avg(b)FROM t2 WHERE c LIKE '% one% '; SELECT count(* ) ,avg(b)FROM t2 WHERE c LIKE '% two% '; … 96 lines omitted SELECT count(* ) ,avg(b)FROM t2 WHERE c LIKE '% ninety nine% '; SELECT count(* ) ,avg(b)FROM t2 WHERE c LIKE '% one hundred% '; COMMIT; Test 5's result:PostgreSQL:13. 409 MySQL:4. 640 Test 6:Creating an index CREATE INDEX i2a ON t2(a) ; CREATE INDEX i2b ON t2(b) ; 通过上面的数据可以看出 MySQL 的运算速度比 PostgreSQL 要快很多,但数据库软件的优劣有时不能 单从速度方面考虑. 4 PostgreSQL在应用中的优势和劣势 4. 1 PostgreSQL的主要优势 1)PostgreSQL 完全免费,而且是 BSD 协议,Post- greSQL 数据库不会被其他公司控制. 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 强很多,所以很多公司都是基于 PostgreSQL 做二次开发的. 4)PostgreSQL 没有回滚段,而 Oracle 与 Innodb 都有回滚段.对于 Oracle 与 Innodb 来说,回滚段非常 重要,回滚段损坏,会导致数据丢失,甚至数据库无法 启动.由于 PostgreSQL 没有回滚段,旧数据都是 记录 混凝土 养护记录下载土方回填监理旁站记录免费下载集备记录下载集备记录下载集备记录下载 在原文件中,所以当数据库异常 crash 后,恢复时不会 像 oracle与 Innodb 数据库那样复杂. 因为 Oracle 与 Innodb恢复时同步需要 redo 和 undo.所以 PostgreSQL 数据库在出现异常 crash 后,数据库无法启动的几率 要比 Oracle 和 MySQL 小一些. 由于旧的数据是直接 记录在数据文件中,而不是在回滚段中,所以不会经常 报 ora-01555 错误. 5)PostgreSQL 在许多方面要强于 MySQL,如复 杂 SQL 的执行、存储过程、触发器、索引等.同时 Post- greSQL 是多进程的,而 MySQL 是线程的,虽然并发 不高时,MySQL 处理速度快,但当并发高时,在目前流 行的多核单台计算机上,MySQL 的总体处理性能不如 PostgreSQL. 4. 2 PostgreSQL的主要劣势 1)最新版本和历史版本不分离存储,导致清理老 旧版本时需要做更多的扫描,代价比较大.但一般的数 据库都有高峰期,如果合理安排 VACUUM,这也不是 很大的问题,而且在 PostgreSQL9. 0 中 VACUUM 进 一步被加强了. 2)在 PostgreSQL 中,由于索引完全没有版本信 息,不能实现 Coverage index scan,即查询只扫描索引, 不能直接从索引中返回所需的属性,还需要访问表,而 Oracle与 Innodb则可以. 5 总 结 经过上面的比较分析,在选择数据库管理系统时, 如果能确定只在 MySQL 和 PostgreSQL 中进行选择, 可以根据以下规则: 1)如果操作系统是 Windows,应该选择 MySQL. 2)如果对数据库并不十分了解,甚至不知道事 务、存储过程等究竟是什么,应该选择 MySQL. (下转第 177 页) 第 2 期 沈 冰,等:石英陶瓷坩埚生产线专用数控机床设计 · 177· [3]刘菊兰. 关于提高数控切割机数控切割质量的探讨[J]. 同煤科技,2003(3). CNC Machine Tool Design Dedicated Quartz Ceramic Crucible Manufacturing Line SHEN Bing,XIAO Nan (Machinery Engineering,Shenyang Institute of Engineering,Shenyang 110136,China) Abstract:Introduced the production line of quartz ceramic crucible special design and application of CNC machine tools,Provide the main design parameters of machine tools,Describes the working principle and special machine tool structure,And the lubrication system design And maintenance of equipment carried on the concrete analysis. Key words:Fused silica crucible;Production Line;Special CNC machine tools (责任编辑 刘 珂 櫔櫔櫔櫔櫔櫔櫔櫔櫔櫔櫔櫔櫔櫔櫔櫔櫔櫔櫔櫔櫔櫔櫔櫔櫔櫔櫔櫔櫔櫔櫔櫔櫔櫔櫔櫔櫔櫔櫔櫔櫔櫔櫔櫔櫔櫔櫔櫔 ) (上接第 173 页) 3)如果应用程序对数据的完整性和严肃性要求 不高,但是要追求处理的高速度,应该选择 MySQL. 4)严肃的商业应用程序对数据的完整性要求很 高,而且希望对一些商业数据逻辑进行很好的封装,因 此应该选择 PostgreSQL. 5)如果处理的是地理数据,由于 R-TREES 的存 在,应该选择 PostgreSQL. 而 MySQL 不适合大量数 据、密集运算、重型负载应用. Contrast selection between MySQL and PostgreSQL LIU Xin (Department of Computer Preparatory Course,Shenyang Institute of Engineering,Shenyang 110036,China) Abstract:In the Linux system,the advantages and shortcomings are analyzed by comparing MySQL 4. 0. 2-alpha with PostgreSQL 7. 2. The results show that MySQL is fit for Windows operation system for its fast data handling;Post- greSQL requires good data integrity,suitable for commercial data and it shows obvious advantages for geography data, intensive computing,heavy load application etc.,it’s advised to be used in large amount of unpredicted data. Key words:MySQL;PostgreSQL;package (责任编辑 刘 珂)
本文档为【MySQL和PostgreSQL的对比选择】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_310223
暂无简介~
格式:pdf
大小:195KB
软件:PDF阅读器
页数:4
分类:互联网
上传时间:2011-08-19
浏览量:21