返回顶部
首页 > 资讯 > 数据库 >常见数据库介绍和使用场景
  • 559
分享到

常见数据库介绍和使用场景

常见数据库介绍和使用场景 2018-03-25 02:03:01 559人浏览 猪猪侠
摘要

在构建系统时要进行设计考虑和权衡。 1.介绍 要选择正确的存储解决方案,需要以下考虑。 关键因素 数据结构 查询模式 您需要处理的数量或规模 2.缓存解决方案 如果您经常调用数据库或远程调用具有高延迟的独立服务,则可能需要[缓存]

常见数据库介绍和使用场景

在构建系统时要进行设计考虑和权衡。

1.介绍

要选择正确的存储解决方案,需要以下考虑。

关键因素

  • 数据结构
  • 查询模式
  • 您需要处理的数量或规模

storage-768x1144.png

2.缓存解决方案

  • 如果您经常调用数据库或远程调用具有高延迟的独立服务,则可能需要[缓存](https://interviewdaemon.com/courses/design-concepts-a-to-z/lessons / caching /)您本地的一些数据。
  • 一些关键值缓存存储解决方案是Memcached,Hazelcast,Redis
  • 大多数使用Redis,Memcache和Elasticache。

3.文件存储解决方案

  • 文件存储用作图像,视频等的数据存储。
  • 数据库旨在存储可以查询的信息,而您不需要查询的文件,只需按原样提供它们即可。这是当我们使用称为Blob存储的东西时。
  • Amazon S3主要用于Blob存储

4.CDN

  • 通常,blob存储与[内容交付网络](Https://interviewdaemon.com/courses/design-concepts-a-to-z/lessons/content-distribution-network-cdn/)或[CDN](https://interviewdaemon.com/courses/design-concepts-a-to-z/lessons/content-distribution-network-cdn/)。
  • CDN是遍布全球的服务器网络,可在不同地理位置提供内容并减少延迟。
  • 如果您要从中获取内容的服务器离您的地理位置更近,则将以更快的方式将内容传递给您。

5.文本搜索功能

5.1.文本搜索

  • 假设您要构建搜索功能,用户可以在其中按电影,流派,演员,女演员,导演等进行搜索。
  • 在这里,您可以使用诸如Solr之类的搜索引
  • 它建立在Apache Lucene之上

5.2.模糊搜索

  • 如果您在搜索中搜索拼写错误/不正确的单词,并且搜索结果中包含正确的单词结果,则称为模糊搜索。
  • 搜索引擎存储临时数据或索引数据,并且不保证长期数据,因此搜索存储不用作主存储。
  • 例如,如果我们输入“ intraviw”,它将根据“面试”进行搜索
  • 我们可以从主数据库中将数据加载到它们,以减少搜索延迟并提供基于模糊和相关性的文本搜索。
  • 可以支持模糊搜索的elasticsearch
  • 它也是基于Apache Lucene构建的

6.时间系列数据库

  • 假设我们正在尝试建立度量跟踪系统,或者在任何基于时间的数据库中我们都需要一个时间序列数据库。
  • 与标准关系数据库不同,时间序列数据库永远不会被随机更新。
  • 大部分会依序追加。
  • 相对于随机读取,在特定时间范围内会有更多的批量读取。在过去1周,10天,1个月,1年等时间内,有多少人观看了编解码器视频。
  • 时间序列数据库的一些示例是OpenTSDB,InfluxDB等。
  • 我们还可以使用任何非关系时间序列数据库。

7.分析和数据仓库

  • 我们需要一个大型数据库来转储可供我们使用的所有数据,以执行分析。
  • 主要用于离线报告,而非事务
  • 存储所有数据,以便他们可以执行分析。
  • hdfs通常用于存储海量数据
  • hadoopspark是非常常用的数据仓库和处理。

8.sqlNoSQL

8.1.SQL

  • 结构取决于我们用来确定将使用哪种类型的因素
  • 如果您需要[ACID](https://interviewdaemon.com/courses/design-concepts-a-to-z/lessons/acid-vs-base-property/)属性,则需要使用关系DBMS。
  • 一些示例是Mysqloracle,Postgres等
  • 付款系统主要需要交易和原子性。
  • [强一致性](https://interviewdaemon.com/courses/design-concepts-a-to-z/lessons/database-consistency/)主要可以通过SQL数据库来实现。

8.2.NoSQL

  • 假设您正在尝试为诸如Amazon之类的商品建立目录,您想在其中存储有关具有各种属性的不同产品的信息。
  • 例如,不同产品的这些属性通常不同。药品将有有效期,但冰箱将具有能量等级。
  • 在这种情况下,我们的数据不能表示为表格。这意味着我们需要使用NoSQL数据库。
  • 如果您需要[BASE](https://interviewdaemon.com/courses/design-concepts-a-to-z/lessons/acid-vs-base-property/)属性,则可以使用非关系数据库前进。
  • 对于[最终一致性](https://interviewdaemon.com/courses/design-concepts-a-to-z/lessons/database-consistency/),我们可以使用NoSQL数据库
  • 最常见的NoSQL DB是mongoDB,Cassandra,DynamoDB

8.2.1.基于文档(基于查询的数据)

  • 如果我们拥有大量数据-不仅是数量,而且还有各种各样的属性-并且我们需要运行各种各样的查询,则需要使用一种称为Document DB的东西。
  • 使用文档数据库,随机查询或其他查询最有效
  • CoucHBase或MonGoDB是一些常用的文档数据库

8.2.2.图形存储

  • 这些类型的数据库使数据可视化更加容易。
  • 它们非常善于在节点的帮助下存储不同数据点之间的关系。
  • 图形存储可能不是最可扩展的数据库。
  • 但是,它们在防止欺诈等使用案例方面效率很高。
  • 图形数据库的常见示例是Neo4j 和 JanusGraph。

8.2.3.Key-value 存储

  • 这些都是非常简单的数据库管理系统,存储关键值对。
  • 最终目标是快速获取基本数据。
  • 这些类型的数据库的常见用例是排行榜和购物车数据。
  • redis是流行的key value 存储。

8.2.4.柱状数据库(不断增加的数据)

  • 有限的查询种类,但是数据库的大小持续快速增加。例如订单,目录
  • 现在,Uber司机的数量将逐日增加,即每天收集的数据也会逐日增加。这成为越来越多的数据。
  • 在这种情况下,我们使用诸如Cassandra或HBase之类的列式数据库。

9.不同数据库的组合

示例:Amazon.com

  • 对于一个我们只有一件库存产品,但有多个用户试图购买它的产品,它应该只卖给一个用户,这意味着我们在这里需要ACID。因此,一个明显的选择应该是像mysql这样的关系数据库。
  • 与亚马逊产品相关的数据将会不断增加,并且会有各种各样的属性。我们应该使用像Cassandra这样的Columnar NoSQL数据库。。
  • 我们可以在MySQL数据库中存储尚未交付的订单数据,一旦订单完成,我们可以将其移到Cassandra永久存储。。
  • 用于报告系统有多少人购买了一个特定的项目。因此,报告不能针对单个产品,而应该针对产品的子集,这些产品可以在Cassandra或MySQL中。这样的需求就是我们最好的选择是像Mongo DB这样的文档DB的一个例子。
  • 假设您想要查看上个月有多少人买了糖,您可以从Mongo DB获取订单id,并使用此订单id从Cassandra或MySQL获取其余数据。

资料来源:https://www.codekarle.com/system-design/Database-system-design.html https://towardsdatascience.com/choosing-the-right-database-in-a-system-design-interview-b8af9c6dc525

您可能感兴趣的文档:

--结束END--

本文标题: 常见数据库介绍和使用场景

本文链接: https://lsjlt.com/news/8405.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 常见数据库介绍和使用场景
    在构建系统时要进行设计考虑和权衡。 1.介绍 要选择正确的存储解决方案,需要以下考虑。 关键因素 数据结构 查询模式 您需要处理的数量或规模 2.缓存解决方案 如果您经常调用数据库或远程调用具有高延迟的独立服务,则可能需要[缓存]...
    99+
    2018-03-25
    常见数据库介绍和使用场景
  • Redis数据库的应用场景介绍
    一、MySql+Memcached架构的问题 实际MySQL是适合进行海量数据存储的,通过Memcached将热点数据加载到cache,加速访问,很多公司都曾经使用过这样的架构,但随着业务数据量的不断增加,...
    99+
    2022-06-04
    场景 数据库 Redis
  • Redis数据库的使用场景介绍(避免误用Redis)
    Redis 是目前 NoSQL 领域的当红炸子鸡,它象一把瑞士军刀,小巧、锋利、实用,特别适合解决一些使用传统关系数据库难以解决的问题。但是 Redis 不是银弹,有很多适合它解决的问题,但是也有很多并不适...
    99+
    2022-06-04
    场景 数据库 Redis
  • Golangerror使用场景介绍
    目录前言error调用栈前言 在Go的编程中, error的使用场景数不胜数, 主要就是用来处理各种异常情况. 长久以来, 我的使用方式都是这样的: err := errors.Ne...
    99+
    2023-03-15
    GoLang error Go error使用场景
  • Javaredis使用场景介绍
    目录1.作为缓存1.1 为何使用1.2 什么样的数据适合放入缓存1.3 使用redis作为缓存1.3.1 未使用配置类1.3.2 使用配置类2.分布式锁2.1 压测工具的使用2.2 ...
    99+
    2024-04-02
  • Redis的数据类型和应用场景介绍
    1.string类型...
    99+
    2024-04-02
  • Redis中5种数据结构的使用场景介绍
    一、redis 数据结构使用场景 原来看过 redisbook 这本书,对 redis 的基本功能都已经熟悉了,从上周开始看 redis 的源码。目前目标是吃透 redis 的数据结构。我们都知道,在 re...
    99+
    2022-06-04
    种数 场景 结构
  • futuretask用法及使用场景介绍
    FutureTask可用于异步获取执行结果或取消执行任务的场景。通过传入Runnable或者Callable的任务给FutureTask,直接调用其run方法或者放入线程池执行,之后可以在外部通过FutureTask的get方法异步获取执行...
    99+
    2023-05-31
    java futuretask
  • Node.js的特点和应用场景介绍
    Node.js应该是当今最火热的技术之一。本文主要介绍Node.js的特点及应用场景。 Node.js是一个基于Chrome JavaScript运行时建立的一个平台,用来方便地搭建快速的 易于扩展的网络应...
    99+
    2022-06-04
    场景 Node js
  • 16个Redis的常见使用场景
     Redis 16 个常见使用场景 1、缓存 String类型 例如:热点数据缓存(例如报表、明星出轨),对象缓存、全页缓存、可以提升热点数据的访问数据。 2、数据共享分布...
    99+
    2024-04-02
  • React使用ref方法与场景介绍
    目录摘要1.ref的挂载2.使用ref的三种方式3.ref的使用场景摘要 不管在Vue中还是React,如果我们想使用一个元素的DOM,不需要通过JS中操纵DOM的方法,它们提供了一...
    99+
    2022-11-13
    React ref React ref用法
  • Python中使用len函数的用法和常见应用场景
    Python中len函数的用法和应用场景 在Python中,len函数是用于获取对象的长度或项数的内置函数。len函数主要用于字符串、列表、元组、字典和集合等数据类型,通过返回一个整数来表示对象的长度或者项数。在本文中,我们将详...
    99+
    2024-01-13
  • css 多种背景的使用场景和技巧、优点介绍
    本篇内容主要讲解“css 多种背景的使用场景和技巧、优点介绍”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“css 多种背景的使用场景和技巧、优点介绍”吧!【 】CSS background是最常...
    99+
    2023-06-07
  • MySQL数据库的几种常见高可用方案介绍
    本篇内容主要讲解“MySQL数据库的几种常见高可用方案介绍”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“MySQL数据库的几种常见高可用方案介绍”吧!一、概述 ...
    99+
    2024-04-02
  • Oracle数据库常用数据类型介绍
    Oracle数据库是一种常用的关系型数据库管理系统,它支持多种数据类型以满足不同的需求。在使用Oracle数据库时,了解数据库的数据类型是非常重要的。本文将介绍Oracle数据库中常用...
    99+
    2024-03-08
    数据类型 oracle 常用
  • MySQL中的数据类型及其应用场景介绍
    MySQL是一种常见的关系型数据库管理系统,广泛应用于各种系统和应用程序中。在MySQL中,数据以不同的数据类型存储在表中。本文将介绍MySQL中常见的数据类型及其应用场景,并附有代码示例。一、整数类型整数类型(INT):用于存储正负整数值...
    99+
    2023-10-22
    适用于表示年龄 数量等整数值) 适用于表示用户名
  • MYSQL数据库中常用函数介绍
    目录1 基本函数2 三角函数3 进制转换函数4 字符串函数5 日期和时间6 指数和对数7 流程控制函数8 加密与解密函数9 MYSQL信息函数总结1 基本函数 2 三角函数 2....
    99+
    2024-04-02
  • KotlinFlow常见场景下的使用实例
    目录Kotlin Flow在开发中的常用场景使用一、网络请求搭载Retrofit1.1 LiveDataCallAdapterFactory1.2 suspend二、协程与Flow的...
    99+
    2024-04-02
  • redis数据库应用场景
    redis 数据库在下列应用场景中广泛使用:缓存存储:提高访问速度和性能。会话管理:提供无缝的用户体验。队列处理:高效处理消息。计数器:存储和维护递增计数。排行榜:快速获取和显示最佳结果...
    99+
    2024-04-19
    redis 并发访问
  • 专业版数据库常用表介绍
    专业版数据库常用表介绍 ICTransactionType 单据类型表,FTemplateID是关联模板信息表的字段,FID关联ICStockBill中的FTranType字段。 ICTemplate 单据模板信息主表 ICTemplat...
    99+
    2020-01-19
    专业版数据库常用表介绍 数据库入门 数据库基础教程 数据库 mysql
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作