因为行 + 列的二维表逻辑是非常贴近逻辑世界的一个概念,关系模型相对网状、层次等其他模型更加容易被理解
通用的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与关系型数据库并不是对立关系,二者各有优劣,取长补短,在合适的场景下选择合适的存储引擎才是正确的做法 。
推荐阅读
-
-
肝脏■肝脏出现硬化时,身体其实早有迹象告知你,很多人还没当回事!
-
朱元璋出上联“老子天下第一”,一人对出下联后被斩!
-
最好的教育是家长配合老师,老师支持孩子?最好的关系就是家长支持老师
-
欧阳夏丹:父亲早逝母亲患癌,34岁成央视主持,43岁仍未婚
-
真性情|原创郑爽“任性”的原因她自己找到了:我之前就是太懂事了
-
Victer科技中情局|你见过火箭发动机像喷气发动机一样呼吸空气吗?
-
#鞍山美食地图#鞍山这店太实在,海鲜大咖多到快溢出来!
-
-
-
乘风2023|《乘风2023》初舞台排名,陈嘉桦登顶,谢娜意外,9人已被淘汰!
-
#特朗普#截止5月7日12时,中国迎来重大抗疫好消息!特朗普彻底慌了
-
幼教咖|怎么回事,为什么幼儿园饭菜特别香?挑食娃上了幼儿园变爱吃饭了
-
环球时报|美国大使馆开始拍卖财产系中美脱钩前兆?美国驻华大使馆回应
-
三星Galaxy|首发AMD GPU!曝三星Galaxy S22延期发布:明年2月份亮相
-
『青年一读人生』赶紧让家里老人动起来!,越懒越痴呆?避免老年痴呆的5大习惯
-
-
-
霞姐的汽车观|黄牛称三百包过?谁知车主这样做竟一次过,汽车5次年检不合格
-