数据库的种类有哪些?

很长时间以来,关系型数据库一直是大公司的专利,市场被Oracle/DB2等企业数据库牢牢把持。但是随着互联网的崛起、开源社区的发展,上世纪九十年代MySQL1.0的发布,标志着关系型数据库的领域社区终于有可选择的方案。



MySQL


第一个介绍的单机RDBMS就是MySQL。相信大多数朋友都已经对MySQL非常熟悉,基本上MySQL的成长史就是互联网的成长史。我接触的第一个MySQL版本是MySQL4.0,到后来的MySQL5.5更是经典——基本所有的互联网公司都在使用。MySQL也普及了「可插拔」引擎这一概念,针对不同的业务场景选用不同的存储引擎是MySQLtuning的一个重要的方式。比如对于有事务需求的场景使用InnoDB;对于并发读取的场景MyISAM可能比较合适;但是现在我推荐绝大多数情况还是使用InnoDB,毕竟5.6后已经成为了官方的默认引擎。大多数朋友都基本知道什么场景适用MySQL(几乎所有需要持久化结构化数据的场景),我就不赘述了。


另外值得一提的是MySQL5.6中引入了多线程复制和GTID,使得故障恢复和主从的运维变得比较方便。另外,5.7(目前处于GA版本)是MySQL的一个重大更新,主要是读写性能和复制性能上有了长足的进步(在5.6版本中实现了SCHEMA级别的并行复制,不过意义不大,倒是MariaDB的多线程并行复制大放异彩,有不少人因为这个特性选择MariaDB。MySQL5.7MTS支持两种模式,一种是和5.6一样,另一种则是基于binloggroupcommit实现的多线程复制,也就是MASTER上同时提交的binlog在SLE端也可以同时被apply,实现并行复制)。如果有单机数据库技术选型的朋友,基本上只需要考虑5.7或者MariaDB就好了,而且5.6、5.7由Oracle接手后,性能和稳定性上都有了明显的提升。


PostgreSQL


PostgreSQL的历史也非常悠久,其前身是UCB的Ingres,主持这个项目的MichaelStronebraker于2023年获得图灵奖。后来项目更名为Post-Ingres,项目基于BSDlicense下开源。1995年几个UCB的学生为Post-Ingres开发了SQL的接口,正式发布了PostgreSQL95,随后一步步在开源社区中成长起来。和MySQL一样,PostgreSQL也是一个单机的关系型数据库,但是与MySQL方便用户过度扩展的SQL文法不一样的是,PostgreSQL的SQL支持非常强大,不管是内置类型、JSON支持、GIS类型以及对于复杂查询的支持,PL/SQL等都比MySQL强大得多,而且从代码质量上来看,PostgreSQL的代码质量是优于MySQL的,另外相对于MySQL5.7以前的版本,PostgreSQL的SQL优化器比MySQL强大很多,几乎所有稍微复杂的查询PostgreSQL的表现都优于MySQL。


从近几年的趋势上来看,PostgreSQL的势头也很强劲,我认为PostgreSQL的不足之处在于没有MySQL那样强大的社区和群众基础。MySQL经过那么多年的发展,积累了很多的运维工具和最佳实践,但是PostgreSQL作为后起之秀,拥有更优秀的设计和更丰富的功能。电脑培训发现PostgreSQL9以后的版本也足够稳定,在做新项目技术选型的时候,是一个很好的选择。另外也有很多新的数据库项目是基于PostgreSQL源码的基础上进行二次开发,比如Greenplum等。




  • 鏁版嵁搴撴湁鍝簺鍒嗙被
    绛旓細鏁版嵁搴撶殑鍒嗙被涓昏鏈変互涓嬪嚑绉嶏細涓銆鍏崇郴鍨嬫暟鎹簱锛圧DBMS锛鍏崇郴鍨嬫暟鎹簱閲囩敤鍏崇郴妯″瀷鏉ョ粍缁囨暟鎹紝鏁版嵁缁撴瀯鍖栫▼搴﹁緝楂橈紝鍏锋湁涓ユ牸鐨勬暟鎹害鏉熸潯浠躲傚父瑙佺殑鍏崇郴鍨嬫暟鎹簱鏈塎ySQL銆丱racle銆丼QL Server绛夈傝繖绫绘暟鎹簱閫傜敤浜庣粨鏋勫寲鏁版嵁鐨勫瓨鍌ㄥ拰绠$悊锛屽浼佷笟搴旂敤銆佸ぇ鍨嬬綉绔欑瓑銆備簩銆侀潪鍏崇郴鍨嬫暟鎹簱锛圢oSQL锛夐潪鍏崇郴鍨嬫暟...
  • 鏁版嵁搴撶殑绫诲瀷鏈夊摢浜
    绛旓細鏁版嵁搴撶殑绫诲瀷涓昏鏈変互涓嬪嚑绉嶏細1. 鍏崇郴鍨嬫暟鎹簱 鍏崇郴鍨嬫暟鎹簱鏄暟鎹簱棰嗗煙鏈甯哥敤鐨勪竴绉嶇被鍨嬨傚畠浠ヨ〃鏍肩殑褰㈠紡瀛樺偍鏁版嵁锛屾暟鎹箣闂撮氳繃鍏崇郴锛堝涓婚敭鍜屽閿級鐩镐簰鍏宠仈銆傝繖绉嶆暟鎹簱浣跨敤SQL锛堢粨鏋勫寲鏌ヨ璇█锛夎繘琛屾暟鎹殑鏌ヨ銆佹彃鍏ャ佹洿鏂板拰鍒犻櫎銆傚父瑙佺殑鍏崇郴鍨嬫暟鎹簱鏈MySQL銆丱racle銆丼QL Server鍜孭ostgreSQL绛銆2....
  • 鏁版嵁搴撶绫绘湁鍝簺
    绛旓細鏁版嵁搴撶绫讳富瑕佹湁浠ヤ笅鍑犵锛1. 鍏崇郴鍨嬫暟鎹簱锛氬MySQL銆丱racle銆丼QL Server绛锛屽畠浠娇鐢ㄧ粨鏋勫寲鏌ヨ璇█锛圫QL锛夎繘琛屾暟鎹搷浣滐紝鍏锋湁涓ヨ皑鐨勬暟鎹粨鏋勫拰鑹ソ鐨勬煡璇㈡ц兘銆2. 闈炲叧绯诲瀷鏁版嵁搴擄細濡侻ongoDB銆丷edis銆丯eo4j绛夛紝瀹冧滑涓嶄娇鐢ㄧ粨鏋勫寲鏌ヨ璇█锛岃屾槸浣跨敤閿煎銆佹枃妗f垨鍥炬暟鎹ā鍨嬶紝鍏锋湁楂樺苟鍙戙侀珮鍙敤鎬у拰鏁版嵁...
  • 鏁版嵁搴鍒嗕负鍝嚑绉嶇被鍨?
    绛旓細鏁版嵁搴撳叡鏈3绉嶇被鍨嬶紝涓哄叧绯绘暟鎹簱銆侀潪鍏崇郴鍨嬫暟鎹簱鍜岄敭鍊兼暟鎹簱銆1銆佸叧绯绘暟鎹簱 MySQL銆丮ariaDB锛圡ySQL鐨勪唬鏇垮搧锛岃嫳鏂囩淮鍩虹櫨绉戜粠MySQL杞悜MariaDB锛夈丳ercona Server锛圡ySQL鐨勪唬鏇垮搧路锛夈丳ostgreSQL銆丮icrosoft Access銆丮icrosoft SQL Server銆丟oogle Fusion Tables銆丗ileMaker銆丱racle鏁版嵁搴撱丼ybase銆乨BASE銆丆li...
  • 甯哥敤鏁版嵁搴撴湁鍝簺
    绛旓細甯哥敤鏁版嵁搴撴湁锛1. 鍏崇郴鍨嬫暟鎹簱 鍏崇郴鍨嬫暟鎹簱鏄洰鍓嶅簲鐢ㄦ渶骞挎硾鐨勬暟鎹簱涔嬩竴銆傚畠閲囩敤琛ㄦ牸鐨勫舰寮忓瓨鍌ㄦ暟鎹紝鏁版嵁浠ヨ鍜屽垪鐨勫舰寮忕粍缁囷紝姣忎釜琛ㄩ兘鏈夌壒瀹氱殑缁撴瀯銆傚父瑙佺殑浠h〃鏈MySQL銆丱racle銆丼QL Server鍜孭ostgreSQL绛銆傝繖绫绘暟鎹簱閫氳繃SQL璇█杩涜鏁版嵁鎿嶄綔锛屾敮鎸佷簨鍔″鐞嗭紝鑳藉鎻愪緵鏁版嵁鐨凙CID鐗规э紙鍘熷瓙鎬с佷竴鑷存с...
  • 鏁版嵁搴撶被鍨嬫湁鍝簺?
    绛旓細鏍规嵁瀛樺偍妯″瀷鍒掑垎锛屾暟鎹簱绫诲瀷涓昏鍙垎涓猴細缃戠姸鏁版嵁搴(Network Database)銆佸叧绯绘暟鎹簱(Relational Database)銆佹爲鐘舵暟鎹簱(Hierarchical Database)銆侀潰鍚戝璞℃暟鎹簱(Object-oriented Database)绛夈傚晢涓氬簲鐢ㄤ腑涓昏鏄叧绯绘暟鎹簱锛屾瘮濡侽racle銆丏B2銆丼ybase銆丮S SQL Server銆両nformax銆丮ySQL绛夈傛暟鎹簱(Database)鏄...
  • 璇烽棶鏁版嵁搴撴湁鍝簺绉嶇被鍛?
    绛旓細1銆佹暟鎹簱鍏辨湁3绉嶇被鍨嬶紝涓哄叧绯绘暟鎹簱銆侀潪鍏崇郴鍨嬫暟鎹簱鍜岄敭鍊兼暟鎹簱銆2銆佸叧绯绘暟鎹簱銆侀潪鍏崇郴鍨嬫暟鎹簱銆傚叧绯绘暟鎹簱鐗圭偣锛氭暟鎹泦涓帶鍒讹紱鍑忓皯鏁版嵁鍐椾綑绛夈傞傜敤鑼冨洿锛氬浜庣粨鏋勫寲鏁版嵁鐨勫鐞嗘洿鍚堥傦紝濡傚鐢熸垚缁┿佸湴鍧绛夛紝杩欐牱鐨勬暟鎹竴鑸儏鍐典笅闇瑕佷娇鐢ㄧ粨鏋勫寲鐨勬煡璇3銆佹暟鎹簱鏈変袱绉嶇被鍨嬶紝鍒嗗埆鏄叧绯诲瀷鏁版嵁搴撲笌...
  • 鏁版嵁搴撶被鍨嬫湁鍝嚑绉
    绛旓細鏁版嵁搴撶被鍨嬪彲鍒嗕负灞傛鍨嬨佺綉鐘跺瀷鍜屽叧绯诲瀷銆傚眰娆″瀷鏁版嵁搴撴槸鎶婃暟鎹牴鎹眰娆℃瀯閫狅紙鏍戠粨鏋勶級鐨勬柟娉曞憟鐜帮紱缃戠姸鍨嬫暟鎹簱鏄噰鐢ㄧ綉鐘跺師鐞嗗拰鏂规硶锛屼互缃戠姸鏁版嵁妯″瀷涓哄熀纭寤虹珛鐨勬暟鎹簱锛鍏崇郴鍨嬫暟鎹簱鏄寚閲囩敤浜嗗叧绯绘ā鍨嬫潵缁勭粐鏁版嵁鐨勬暟鎹簱銆傛暟鎹簱鐨勪綔鐢 1銆佸疄鐜版暟鎹叡浜細鏁版嵁鍏变韩鍖呭惈鎵鏈夌敤鎴峰彲鍚屾椂瀛樺彇鏁版嵁搴撲腑鐨...
  • 鏁版嵁搴撶殑绫诲瀷??
    绛旓細1锛庡弬鑰鏁版嵁搴涓昏瀛樺偍涓绯诲垪鎻忚堪鎬т俊鎭唴瀹癸紝鎸囧紩鐢ㄦ埛鍒板彟涓淇℃伅婧愪互鑾峰緱瀹屾暣鐨勫師濮嬩俊鎭殑涓绫绘暟鎹簱锛屼富瑕鍖呮嫭涔︾洰鏁版嵁搴撳拰鎸囧崡鏁版嵁搴撱傦紙1锛変功鐩暟鎹簱 瀛樺偍鎻忚堪濡傜洰褰曘侀褰曘佹枃鎽樼瓑涔︾洰绾跨储鐨勬暟鎹簱锛屽張绉颁簩娆℃枃鐚俊鎭暟鎹簱銆傚鍚勭鍥句功棣嗙洰褰曟暟鎹簱銆侀褰曟暟鎹簱鍜屾枃鎽樻暟鎹簱绛夊睘浜庢绫伙紝瀹冪殑浣滅敤鏄...
  • 璇烽棶鏁版嵁搴撴湁鍝簺绉嶇被鍛
    绛旓細1銆佸叧绯绘暟鎹簱 鐗圭偣锛氭暟鎹泦涓帶鍒讹紱鍑忓皯鏁版嵁鍐椾綑绛夈傞傜敤鑼冨洿锛氬浜庣粨鏋勫寲鏁版嵁鐨勫鐞嗘洿鍚堥傦紝濡傚鐢熸垚缁┿佸湴鍧绛夛紝杩欐牱鐨勬暟鎹竴鑸儏鍐典笅闇瑕佷娇鐢ㄧ粨鏋勫寲鐨勬煡璇2銆侀潪鍏崇郴鏁版嵁搴 鐗圭偣锛氭槗鎵╁睍锛涘ぇ鏁版嵁閲忥紝楂樻ц兘锛涚伒娲荤殑鏁版嵁妯″瀷绛夈備娇鐢ㄨ寖鍥达細鎹ā鍨嬫瘮杈冪畝鍗曪紱闇瑕佺伒娲绘ф洿寮虹殑IT绯荤粺锛涘鏁版嵁搴撴ц兘瑕佹眰杈...
  • 本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网