内存读写速度 = 10倍 * 磁盘读写速度,
磁盘容量 > 1000倍*内存容量

数据存储总体可以分为文件存储阶段、关系型数据库阶段、非关系型数据库阶段、内存数据库阶段、分布式数据库阶段

文件存储阶段
计算机发展初期,所有的信息都存储在文件中,那时需要存储的信息相对较少,但是如果大量数据存储在一个文件中,那就会造成文件查询缓慢、文件插入删除缓慢。因为所有操作都是针对整个文件操作。

关系型数据库阶段
数据库为什么会比存取或者读写速度快呢?
关系型数据库利润mysql、oracle里面都有数据库的概念,比如oracle默认数据库大小默认为8k,可以说在文件存储阶段的一个大文件会分成很多给8k大小的小文件。如果仅仅时分块,没有把分块管理起来,那效率跟文件存储阶段也差不多。我们知道一般关系型数据库按行进行存储,并且每行数据都是结构化的。假如我们要查找数据库是否存在某个字段值为”张三“的,最快方法就是张三字段作为索引,那索引在数据库又是怎么实现的呢?
我们知道一个块大小为8k,假如存储一整条数据库,每条数据1k,则能存储8条,而我们的索引也是一条数据,但是索引不会记录一条完整的数据,它只用记录”张三“字段 及其所在位置,一条索引只有0.1k,那一个块大小则能存储8000条索引数据,而整个索引信息一般采用B+树进行管理,可以根据键值能快速定位哪条索引信息可以命中相应的数据块,然后取存储数据的数据库中去获取整个数据库的信息即可,这样就能避免全表扫描。效率肯定比全文件扫描要快得多。
也就是说数据库比文件快的原因主要包括:
数据分块,数据结构化、顺序索引
常见的关系型数据库包括:oracle,mysql、ibm的db2、sqlserver、sqlite、h2等
为了提高关系型数据库的处理效率,常见于给其增加缓存,即将部分数据读到内存中,加快处理时效性。根本原因就是内存读取速度比磁盘快!

 **内存数据库阶段**

内存数据库即数据只存储到内存中,从存储的位置就可以看出,内存数据库肯定比数据存储到磁盘的关系型数据库快,还有就是数据库存储量会受内存大小的限制。内存存储空间一般要比磁盘小很多,所以内存数据库主要是存储一些使用高频的数据。
常见的纯内存数据库有memcache和redis,memcache比redis出现得早,两种都是key-value形式存储,memcache只支持string类型得value,而redis能支持五种数据类型,并且redis是单线程的,处理速度更快,所以redis更受广大开发者欢迎。
为什么redis是单线程还处理速度更快呢?
redis是存储在内存中,不是磁盘,不用等待磁盘读写数据,然后cpu才能处理。如果是多线程会涉及到cpu在不同上下文之间的切换,需要保存和读取上下文,这是很耗时间的,而单线程就是顺序执行,可以省去CPU保存现场的时间。好比一个人只干一件事速度一般会快过一个人同时干两件事,流水线不就是这样吗?
内存数据库因为其存储空间的局限性,已经价格相对昂贵而无法做主要存储数据库。

   **分布式数据库阶段**

分布式系统的核心理念是让多台服务器协同工作,完成单台服务器无法处理的任务,尤其是高并发或者大数据量的任务。分布式数据库是数据库技术与网络技术相结合的产物,它通过网络技术将物理上分开的数据库连接在一起,进行逻辑层面上的集中管理。
国内主要的分布式数据库有:开源的mysql,腾讯的TDsql(在mysql5.6版本上做的封装),华为的GaussDB(高斯数据库,在PostgreSQL9.2上封装),阿里的Oceanbase

关系型数据库与非关系型数据库对比
 关系型数据库
  1、容易理解:二维表结构是非常贴近逻辑世界一个概念,关系模型相对网状、层次等其他模型来说更容易理解;
  2、使用方便:通用的SQL语言使得操作关系型数据库非常方便;
  3、易于维护:丰富的完整性(实体完整性、参照完整性和用户定义的完整性)大大减低了数据冗余和数据不一致的概率;
  4、支持SQL,可用于复杂的查询。
  关系型数据库的缺点
  1、为了维护一致性所付出的巨大代价就是其读写性能比较差;
  2、固定的表结构;
  3、高并发读写需求;
  4、海量数据的高效率读写;
非关系型数据库
  非关系型数据库的特性
  1、使用键值对存储数据;
  2、一般不支持ACID特性;
  3、非关系型数据库严格上不是一种数据库,应该是一种数据结构化存储方法的集合。
  非关系型数据库的优点
  1、直接操作数据,无需经过sql层的解析,读写性能很高;
  2、基于键值对,数据没有耦合性,容易扩展;
  3、存储数据的格式:nosql的存储格式是key,value形式、文档形式、图片形式等等,文档形式、图片形式等等,而关系型数据库则只支持基础类型。
  非关系型数据库的缺点
   1、不提供sql支持,学习和使用成本较高;
   2、无事务处理

 当然存储还涉及hadoop的分布式文件系统hdfs、zookeeper等,后面再对此部分进行梳理

数据存储的各个发展阶段相关推荐

  1. 云上应用系统数据存储架构演进

    简介: 回顾过去二十年的技术发展,整个应用形态和技术架构发生了很大的升级换代,而任何技术的发展都与几个重要的变量相关.本文将会给大家分享应用系统数据架构的演进以及云上的架构最佳实践. 作者 | 木洛 ...

  2. 数据密集型应用系统设计_数据存储与检索

    数据存储与检索 从最基本的层面看,数据库只需要做两件事: 向它插入数据时,它就保存数据 查询数据时,它就返回数据 本章主要从数据库的角度来探讨: 如何存储输入的数据 收到查询请求时,如何重新找到数据 ...

  3. 英特尔 QLC 3D NAND 数据存储

    英特尔 QLC 3D NAND 数据存储 NAND是什么 由于SSD固态硬盘的普及,NAND这个词逐渐进入用户们的视线.许多厂商都在产品宣传中提到3D NAND颗粒等词汇,对于普通用户来讲,完全不知道 ...

  4. Android的数据存储方式

    1.Shared Preferences 2.文件存储数据 3.数据库 4.Content Provider存储数据,是所有应用程序之间数据存储和检索的一个桥梁,它的作用就是使得各个应用程序之间实现数 ...

  5. mysql更改数据库数据存储目录_MySQL更改数据库数据存储目录

    MySQL数据库默认的数据库文件位于/var/lib/mysql下,有时候由于存储规划等原因,需要更改MySQL数据库的数据存储目录.下文总结整理了实践过程的操作步骤. 1:确认MySQL数据库存储目 ...

  6. AS3.0编程 So本地数据存储(“超级cookies”)--AS3:Local SharedObject

    Flash影片运行过程中,大多数的数据都存储于影片本身,一旦影片被关闭,这些数据也就从内存中被清除掉,下次运行时,数据将从头开始.若想存储数据或者让客户端的多个影片共享同一组数据,就要想办法把数据存储 ...

  7. Java中数据存储方式

    2019独角兽企业重金招聘Python工程师标准>>> 1. 寄存器(register).这是最快的存储区,因为它位于不同于其他存储区的地方--处理器内部.但是寄存器的数量极其有限, ...

  8. IOS数据存储之文件沙盒存储

    前言: 之前学习了数据存储的NSUserDefaults,归档和解档,对于项目开发中如果要存储一些文件,比如图片,音频,视频等文件的时候就需要用到文件存储了.文件沙盒存储主要存储非机密数据,大的数据. ...

  9. 华为云大数据存储的冗余方式是三副本_大数据入门:HDFS数据副本存放策略

    大数据处理当中,数据储存始终是一个重要的环节,从现阶段的市场现状来说,以Hadoop为首的大数据技术框架,仍然占据主流地位,而Hadoop的HDFS,在数据存储方面,仍然得到重用.今天的大数据入门分享 ...

  10. BigData NoSQL —— ApsaraDB HBase数据存储与分析平台概览

    一.引言 时间到了2019年,数据库也发展到了一个新的拐点,有三个明显的趋势: 越来越多的数据库会做云原生(CloudNative),会不断利用新的硬件及云本身的优势打造CloudNative数据库, ...

最新文章

  1. 你是一个职业的页面重构工作者吗?
  2. 无人驾驶、自动驾驶与驾驶辅助的区别
  3. 【无人驾驶】基于毫米波雷达的自动紧急刹车系统设计
  4. java技术指标_使用 Micrometer 记录 Java 应用性能指标
  5. nginx 根据目录指定root_nginx安全优化与性能优化
  6. java中的Timer
  7. 2.用户画像:方法论与工程化解决方案 --- 数据指标体系
  8. mysql解压rpm文件在哪_[mysql] mysql 源码安装解压 rpm 包命令
  9. SRS之SrsRtmpConn::publishing详解
  10. FlightGear编译
  11. FL studio 20简易入门教程 -- 第八篇 -- 技巧合集
  12. 【RK2206】4. MQTT示例
  13. 如何查询GPU卡每个block支持的最大thread(线程)数
  14. [读书笔记]高效15法则 谷歌、苹果都在用的深度工作法
  15. 5G NR 下行同步SSB(3)-- PBCH/MIB的用途
  16. 【官方文档】Fluent Bit 安装在 Windows
  17. 学习SEO第一天[笔记不易]
  18. 【解决方案】云看大熊猫,动物园直播解决方案EasyNVR+EasyNVS如何玩转动物IP
  19. 龙蜥社区开源 coolbpf,BPF 程序开发效率提升百倍
  20. 团队博客-11月19日

热门文章

  1. ubuntu下配置apache2+php+mysql By Assassin
  2. 实战案例!使用 Python 进行 RFM 客户价值分析!
  3. 本周测试服务器角色转移系统仅开放转入,梦幻西游3月11日更新一览
  4. JZOJ5444. 【NOIP2017提高A组冲刺11.2】救赎
  5. 【Unity2D入门教程】简单制作战机弹幕射击游戏③C#编写 子弹Laser脚本
  6. 解决java下载文件中文文件名乱码问题(ie,谷歌,火狐)
  7. 一气之下,我抢过面试官电脑花10分钟搭建了MySQL主从架构,面试官蒙了
  8. 百度C++研发工程师面试题(最新整理)
  9. doc转html poi,java poi doc 转html
  10. 化解仓储难题,WMS智能仓储系统解决方案