关系型数据库的演变以及非关系型数据库

关系型数据库的演变以及非关系型数据库

数据库分类

而在当今的互联网中,最常见的数据库模型主要是两种,即关系型数据库和非关系型数据库

什么是关系型数据库

关系型数据库

建立在关系模型基础上的数据库,就是说它需要预定义固定模式的表来存储所有数据

关系型数据库用了选择、投影、连接、并、交、差、除、增删查改等数学方法来实现对数据的存储和查询。可以用SQL语句方便的在一个表或多个表之间做非常复杂的数据查询。安全性高

MySQL数据库的模式的发展

mysql的单机时代

这个时候网站的访问量不是很大,而且也是静态网页,动态交互类型的网站不多,产生的数据不是很大,这个时候mysql单机就足够了,但是当数据量增大,就存在瓶颈了。

分析一下这个时候的存储瓶颈

  1. 数据量的增大,大到一个机器放不下时
  2. 数据的索引(B+ Tree)一个机器的内存放不下时
  3. 访问量(读写混合)一个实例不能承受

这个时候为了解决访问量问题

就在App和Mysql数据库中间加了一个DAL(数据库访问层)

数据库访问层的主要职责是:读取数据和传递数据。

Memcached(缓存)+ MySQL + 垂直拆分

当访问量继续上升,几乎大部分使用MySQL架构的网站在数据库上都开始出现了性能问题,无法满足快速查询与插入数据的需求,这个时候程序员就开始大量使用缓存技术(在数据库访问层加缓存)来缓解数据库的压力,并且对数据库进行垂直拆分(主要是针对写压力)。

什么是垂直拆分?

垂直拆分它是数据库拆分的一种,数据库拆分分为 垂直拆分,水平拆分,基于hash拆分,基于路由拆分

  1. 按功能划分(垂直划分)

    一个数据库由很多表的构成,每个表对应着不同的业务,垂直切分是指按照业务将表进行分类,拆分到不同的数据库上面,这样也就将数据或者说压力分担到不同的库上面

    比如淘宝中期开始的数据库端按照业务垂直拆分:按照业务交易数据库、用户数据库、商品数据库、店铺数据库等进行拆分。

    优点:

    1. 拆分后业务清晰,拆分规则明确。

    2. 系统之间整合或扩展容易。

      比如说:我们的系统现在要增加新的业务(功能),我们直接添加新的数据库,创建相应的表就可以了。

    3. 数据维护简单

    缺点:

    1. 部分

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值