因为行 + 列的二维表逻辑是非常贴近逻辑世界的一个概念,关系模型相对网状、层次等其他模型更加容易被理解
通用的SQL语言使得操作关系型数据库非常方便,支持join等复杂查询
支持ACID特性,可以维护数据之间的一致性,这是使用数据库非常重要的一个理由之一,例如同银行转账,张三转给李四100元钱,张三扣100元,李四加100元,而且必须同时成功或者同时失败,否则就会造成用户的资损
数据持久化到磁盘,没有丢失数据风险,支持海量数据存储
最常用的关系型数据库产品MySql、Oracle服务器性能卓越,服务稳定,通常很少出现宕机异常
关系型数据库的缺点
紧接着的,我们看一下关系型数据库的缺点,也是比较明显的 。
数据按行存储,即使只针对其中某一列进行运算,也会将整行数据从存储设备中读入内存,导致IO较高
为了提供丰富的查询能力,通常热点表都会有多个二级索引,一旦有了二级索引,数据的新增必然伴随着所有二级索引的新增,数据的更新也必然伴随着所有二级索引的更新,这不可避免地降低了关系型数据库的读写能力,且索引越多读写能力越差 。有机会的话可以看一下自己公司的数据库,除了数据文件不可避免地占空间外,索引占的空间其实也并不少
数据一致性是关系型数据库的核心,但是同样为了维护数据一致性的代价也是非常大的 。我们都知道SQL标准为事务定义了不同的隔离级别,从低到高依次是读未提交、读已提交、可重复度、串行化,事务隔离级别月底,可能出现的并发异常越多,但是通常而言能提供的并发能力越强 。那么为了保证事务一致性,数据库就需要提供并发控制与故障恢复两种技术,前者用于减少并发异常,后者可以在系统异常的时候保证事务与数据库状态不会被破坏 。对于并发控制,其核心思想就是加锁,无论是乐观锁还是悲观锁,只要提供的隔离级别越高,那么读写性能必然越差
前文提过,随着企业规模扩大,一种方式是对数据库做分库,做了分库之后,数据迁移(1个库的数据按照一定规则打到2个库中)、跨库join(订单数据里有用户数据,两条数据不在同一个库中)、分布式事务处理都是需要考虑的问题,尤其是分布式事务处理,业界当前都没有特别好的解决方案
由于数据库存储的是结构化数据,因此表结构schema是固定的,扩展不方便,如果需要修改表结构,需要执行DDL(data definition language)语句修改,修改期间会导致锁表,部分服务不可用
例如like "%中国真伟大%",只能搜索到"2019年中国真伟大,爱祖国",无法搜索到"中国真是太伟大了"这样的文本,即不具备分词能力,且like查询在"%中国真伟大"这样的搜索条件下,无法命中索引,将会导致查询效率大大降低
写了这么多,我的理解核心还是前三点,它反映出的一个问题是关系型数据库在高并发下的能力是有瓶颈的,尤其是写入/更新频繁的情况下,出现瓶颈的结果就是数据库CPU高、Sql执行慢、客户端报数据库连接池不够等错误,因此例如万人秒杀这种场景,我们绝对不可能通过数据库直接去扣减库存 。
可能有朋友说,数据库在高并发下的能力有瓶颈,我公司有钱,加CPU、换固态硬盘、继续买服务器加数据库做分库不就好了,问题是这是一种性价比非常低的方式,花1000万达到的效果,换其他方式可能100万就达到了,不考虑人员、服务器投入产出比的Leader就是个不合格的Leader,且关系型数据库的方式,受限于它本身的特点,可能花了钱都未必能达到想要的效果 。至于什么是花100万就能达到花1000万效果的方式呢?可以继续往下看,这就是我们要说的NoSql 。
结合NoSql的方式做存储的架构演进像上文分析的,数据库作为一种关系型数据的存储引擎,存储的是关系型数据,它有优点,同时也有明显的缺点,因此通常在企业规模不断扩大的情况下,不会一味指望通过增强数据库的能力来解决数据存储问题,而是会引入其他存储,也就是我们说的NoSql 。
NoSql的全称为Not Only SQL,泛指非关系型数据库,是对关系型数据库的一种补充,特别注意补充这两个字,这意味着NoSql与关系型数据库并不是对立关系,二者各有优劣,取长补短,在合适的场景下选择合适的存储引擎才是正确的做法 。
推荐阅读
-
苹果手机感谢iPhone11,华为Mate30 4G版彻底跌至荣耀价,纠结了
-
[利刃军事]应集体染病以获得“群体免疫”,美国专家:中国周边的美军不能隔离
-
巴塞罗那|皇马2-1黄潜夺冠!詹俊曝内情,梅西感言意味深长,谁注意齐达内举动
-
青年|王者荣耀:李信世冠特效削弱,25个BUG修复,阿古朵上架准备就绪!
-
-
-
新配色 Navy Blue ? navy是什么颜色
-
长月烬明|《长月烬明》拿下月榜第5,比起男女主颜值,我更关心这3样!
-
音乐是自己|4种食物不能省,改善气色,气血通畅,补充维生素,女性不想变老
-
-
IT之家■Win10 Mobile 为何放弃安卓子系统?真相了,四年前
-
【栈外】第三方Cookie的消失对广告商来说意味着什么?
-
遊戏动漫大全|手雷燃烧瓶还缺啥?王小歪AWM闪身狙,和平精英三大攻楼神器
-
-
-
角斗士2|春节电影陷争议!《满江红》疑抄袭,《乒乓》撤档《无名》口碑差
-
-
网易娱乐|Yamy曝光公司会议录音 被老板公开羞辱言语恶劣
-
「挖贝网」燃煤价格同比下降,穗恒运A2020年一季度盈利4.14亿增长420%
-
炸鸡块怎么做好吃又简单窍门,炸好的鸡块的做法大全-