概述
我们知道,目前数据库大体上分为两类,一类是关系型数据库,一类是非关系型数据库。
其实在业界中,大体上可以分为三大类软件公司:
互联网行业(如电商、P2P、O2O、互联网金融等)
传统领域软件行业(如交通、气象、电信、银行等某个领域的软件需求)
产品软件行业(如医疗、军工、OA、企业级管理系统、小行业等第三方的软件需求)
有人说一般互联网行业都会选择使用mysql数据库,原因很简单,开源且成本低,其实一般的大型互联公司,往往不是只单单使用一种数据库。可能是多种混合这使用,比如互联网金融公司的核心数据库一般采用Oracle或者DB2,为了对安全做保证,外围数据库可能使用mysql,一些即时的信息或安全度不是特别高的信息可能会使用缓存。所以,使用什么数据库是要看具体的需求而定的,并不能一概而论,Oracle的强大是大家有目共睹的,论综合能力mysql与之差了不知道多少倍。
数据库类型
对于关系型数据库,我不在强调具体细节,关系型数据库的最大特点就是事务的一致性:传统的关系型数据库读写操作都是事务的,具有ACID的特点,这个特性使得关系型数据库可以用于几乎所有对一致性有要求的系统中,如典型的银行系统。
相反地,关系型数据库为了维护一致性所付出的巨大代价就是其读写性能比较差,而像微博、facebook这类SNS的应用,对并发读写能力要求极高,关系型数据库已经无法应付,所以会采用一系列的非关系型数据库,或者缓存来提供系统的性能,尤其是web2.0的兴起。
关系型数据库和非关系型数据库的区别?
最终无论数据怎么做处理都要有数据落地(入库),一般我们会存储在关系型数据库中,所以无论关系型、非关系型数据库,我们都要掌握它们的使用和应用范围、场景,一个好的数据设计,往往可以规避很多复杂的逻辑和后期的不可预见性,所以一般设计数据库的工程师在企业里都是很重要的核心成员。