首页 > 其他分享 >存储系统需要做哪些事?

存储系统需要做哪些事?

时间:2024-05-30 23:21:36浏览次数:21  
标签:储存 需要 哪些 存储系统 Redis mysql 数据结构 数据 数据库

  储存系统,顾名思义,自然是一个提供数据存储、查询的系统。

  那么,一个储存系统,具体要做哪些事儿呢?在我看来主要是如下六个方面

  * 数据格式

  * 数据结构

  * 单点or分布式

  * 高可用

  * 数据一致性

  * 查询优化

  数据格式

  所谓数据格式,便是对数据存储格式的定义。比如mysql等关系数据库,便是通过表这种格式来表达数据。比如

MongoDB,以文档格式来表达数据。比如Redis,以key,values来表达数据。不同的格式,也导致了储存系统各自的

特性。

  试想一下,关系型数据库,定义一个字符串字段,为何要在创建时限制字段长度?

  要解释这个问题,不妨假设下,如果字符串字段不需要限制长度。假如有一个市民表,储存市民信息。现在想要

储存市民房屋信息,应该怎么办呢?

  如果可以不限制长度,很多人为了偷懒,就会直接在市民表加一个字段,但由于一个人可以由多个房子,那么就可以用

JSON格式来保存市民的房屋数据。

  这样并非不可,但是与关系型数据库的风格不符。最好的方案,便是再创建一个房屋表,其中一个字段,储存市民ID(假设

一个房子只会属于一个市民)。这,便是典型的关系型数据库。

  这种设计,有利有弊,关系型数据库由于在表达复杂的事务关系时,需要多张表,就使得连表变得很频繁,带来的直接后果

,便是查询性能的低下。正因为如此,基于文档格式的MongoDB,才有了自己的一席之地。

  数据结构

  数据结构,即数据如何储存。比如mysql,是以B+树的数据结构储存在文件中。Redis,则是以跳表、Hash等数据结构储存在

内存中。MongoDB,是以B树储存在文件之中。

  mysql选择B+树,主要是为了降低树高,减少硬盘IO次数;同时,提升范围查询的效率。

  MongoDB选择B树,主要为了提升热点数据的查询效率(由于非叶子节点也保存数据,性能高于B+树),但是整体树高是高于

B+树的,且范围查询性能低。

  Redis,数据储存在内存之中,对树高不敏感。所以,选择了跳表这种数据结构。

  单点or分布式

  严格讲,mysql这类数据库,是单点数据库。只不过为了保证高可用,设计了主备结构;为了降低主库压力,由设计了主从结构。

Redis,则是分布式数据库,需要做数据分区,且有主从数据备份的设计。再比如Zookeeper,也是分布式数据库。

  高可用

  mysql,通过主备来保证高可用。Redis,通过从库来保证高可用。

  数据一致性

  mysql的Innodb,通过两阶段提交保证Binlog和Redolog的一致性。

  查询优化

  mysql提供了索引特性。

标签:储存,需要,哪些,存储系统,Redis,mysql,数据结构,数据,数据库
From: https://www.cnblogs.com/kingcode/p/18223478

相关文章

  • 机床数据采集网关的功能与特点主要有哪些?机床数据采集网关的应用价值-天拓四方
    随着工业4.0时代的到来,机床数据采集网关成为了实现智能制造和数字化转型的重要工具。作为连接机床与上层管理系统之间的桥梁,机床数据采集网关发挥着至关重要的作用,它能够实现机床数据的实时采集、传输与处理,为企业的生产管理和决策提供有力支持。一、机床数据采集网关的功能与......
  • 普通人创业项目有哪些 轻资产创业还有前景吗
    对于有志于创业加盟的人士来说,选择轻资产模式将是一个明智的决策。轻资产创业不仅具有较低的风险和成本,还能够快速响应市场变化,抓住创业机会。通过深入了解以下这些最具盈利潜力的轻资产行业,您将能够找到适合自己的创业道路,实现财富和事业的双重增长。轻资产创业是当前非常流......
  • 企业防泄密软件有哪些?这三款企业加密软件不容错过
    在数字化浪潮下,企业数据的保密工作变得尤为重要。为了有效防止数据泄露,众多企业纷纷选择部署防泄密软件。本文将为您介绍三款且备受好评的企业加密软件,它们在市场上具有广泛的应用和良好的口碑。首先,让我们来了解一下安秉网盾加密软件。作为国内领先的加密软件提供商,安秉网盾......
  • 前端需要知道的缓存知识总结
    HTTP缓存是一种用于提高网站性能和减少带宽使用的技术。当用户访问一个网页时,浏览器会下载页面上的所有资源(如HTML、CSS、JavaScript等),这些资源会占用大量的带宽和时间。为了减少这些资源的加载时间,HTTP缓存机制被引入。......
  • 洁净房计量校准中,温湿度如何校准?需要注意哪些规范流程?
    洁净房是许多生产厂商,或者实验室常用的实验生产空间。比如常见的无尘车间,又或者是无尘实验室等等,它们都有相同的特点,那就是洁净无尘,基本上可以排除空间里尘埃微粒的影响,从而可以更好的对洁净房中的静电、温度、湿度等一系列数据进行规范控制,那么如果需要在洁净房中进行计量校准......
  • 日常开发中注意点总结(三)对于分页查询、详情查询总到底哪些字段该回传回来,数据库的回传
    还有个问题,对于分页查询、详情查询这些接口中,到底是哪些字段应该回传给前台,其实还是依赖于前台需要对哪些字段做展示,需要使用哪些字段。一般对于resVo响应实体,都是包含哪些应该返回的字段(前端应该展示的字段),这种的再后面查询数据库的时候,直接查询该展示的字段,这是没有任何异......
  • Linux需要修改时区(目前只写了 上海、越南、印度、日本、韩国、UTC0六个时区,可根据自己
    #!/bin/sh#时区列表timezones=("Asia/Shanghai""Asia/Ho_Chi_Minh""Asia/Calcutta""Asia/Tokyo""Asia/Seoul""UTC")echo"上海时区"echo"越南时区"echo"印度时区"e......
  • 我们真的需要一台Nas吗?
    这些考虑因素,帮助你决定是否需要NAS:1、数据存储需求:如果你有大量的数据需要存储,并且这些数据需要在多台设备之间共享,那么NAS可能是一个好选择。NAS可以提供集中化的存储空间,使你可以轻松地访问、备份和共享文件。2、备份和冗余:NAS通常具有数据备份和冗余功能,这可以保护你的......
  • C++中以类的成员函数作为Windows callback函数需要设置成static函数
    在看代码时,发现很多CALLBACK函数,所以仔细研究了一下C++中的CALLBACK函数首先,我们来理解一下,什么是C++中的CALLBACK函数 =>凡是由你设计,但是由Windows操作系统调用的函数,我们把它统称为CALLBACK函数,这些函数都有一定的类型,以方便配合Windows的调用动作某些WindowsAPI函数会要......
  • PHP多选题-下列哪些城市属于省会城市
    直接上代码:<!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><htmlxmlns="http://www.w3.org/1999/xhtml"><head><metahttp-equiv="......