文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

合理规划:如何为APP选择正确的数据库?

2024-12-03 08:24

关注

从事新项目总是令人极度兴奋——可以自由地以自己喜欢的方式设计和构建项目。但如果规划得不合理,就会给未来带来麻烦。需要作出的最关键的决定之一就是选择APP数据库,而此文的目的就是介绍数据库的选择方案——并列举其优势和弊端以帮你明智地选择数据库。

[[390048]]

键值

数据库的结构像JSON对象,每个键都是唯一的,每个键都指向某个值。

 

 

它把数据保存在内存中,运行速度快,但有容量限制,所以难以存储大量数据。由于没用到硬盘,因而运行非常的快。因为不涉及查询或连接,因此不需要担心数据建模。由于没有模式,开发人员总是可以灵活地根据自己的喜好更改数据。

 

 

使用条件:

 

 

宽立柱

宽立柱像注射了类固醇的键值。值被修改为存储一组列,而不仅仅是普通数据。

 

 

引入一组列之后,现在可以给相关数据分组,但仍没有标准的模式。因此,每个键可以指向不同分组的数据。

由于没有模式,它可以处理非结构化数据,并附带一种名为CQL的查询语言,类似于SQL,但功能要弱得多。数据以连续的流形式出现,比如来自物联网设备、股票市场、金融交易或Netflix观看历史。

 

 

使用条件:

它仍然不是通用的。因此,它可以用于存储来自所有不同应用程序的历史数据。

文档型数据库

它是我们使用的最流行的数据库技术之一。很明显,它包括文档,每个文档是一组键值对。它们是非结构化的、不需要模式。

 

 

文档被分组到集合中,这些集合可以被构造成逻辑层次结构。逻辑数据集合以更有逻辑性的方式分组相关数据,它似乎与关系数据库相似。

 

 

数据库不能运行join查询,怎么立刻获得所有相关的数据呢?把它们全部储存。鼓励非规范化数据库,已经做好会出现数据复制/不一致的准备。

读取数据非常快,但编写和更新数据的同时要保证一致性却是一项挑战。文档数据库非常适合通用应用程序,也可能非常适合大多数应用程序、游戏和物联网。

若对数据库模式不甚了解,则记录数据库是最佳启动方式。

流行文档型数据库

 

 

数据量很多,而且数据之间有着直接或间接的关系时,文档型数据库无法容纳。在这种情况下,必须运行多个复杂的查询,然后在前端应用程序中合并所有接收到的数据,或者可以使用关系数据库,其中这些复杂的查询由数据库管理。

关系数据库

这类数据库中,著名的一些包括MySQL, Postgres, and SQL Server。他们出现很长时间了,对于很对应用程序来说都是不错的选择。

想象一个汽车工厂,它有不同的轮毂来生产汽车部件。假设门是在一个地方制造的,而轮子、车身和内部零件都是在各自不同的地方制造的。

 

 

假设的车厂蓝图

每个制造的部件都有一个唯一的ID。所以一旦汽车组装完毕,就可以从不同的地方取来所有的零件,然后组装汽车。

 

 

建造这样一个工厂需要制定蓝图,以确保整个生产过程非常高效和优化。这个蓝图在使用在数据库中时称为模式。因此,需要为数据库规划模式,以确保数据库也有效性高,能满足应用程序的数据需求。

缺点:

优点:

哪个最适合你?

要是不需要建立模式,直接把关系存成数据,该用哪个呢?

图表数据库

数据存储在节点中,关系被定义为边。一起来看看怎么做。

要想在SQL数据库里查找所有学习计算机科学的学生,则需要一个查找/中间人表,该表单独存储所有学习计算机科学的学生的记录。

 

 

图表更加简单明了,因为不必分别存储数据中的关系部分,而自动带有新式数据。

 

 

关系更易于记录和保持在图表里

有了这个直接显示两个节点间的关系的新方式,复杂的联接查询变得更简单,与SQL相比,极大地提高了数据的性能。因此,因依赖大量联接操作而降低数据的性能时,可以使用这种数据库。

可搜索数据库

如果你正在构建一个像谷歌这样的应用程序,在小字符串查询搜索中,你必须快速返回所有匹配的记录,那么这就是一个全文搜索引擎。这些数据库基于始于1999年的Apache Lucene项目。

Algolia和MeiliSearch是全文搜索引擎。它们看起来类似于文档类型的数据库。有一个索引,并向它添加数据对象。搜索数据库引擎将分析文档中的所有文本,并创建称为倒排索引的东西。

当你查询某项内容时,数据库只会检查反向索引,这使得整个过程看起来异常迅速,即使对于大型数据库也是如此。

多模式数据库

可供选择的数据库有很多,但最流行的似乎是Fauna。作为应用开发者,我们通常只关心JSON,我们可以在应用前端使用它。有了Fauna,不必担心数据建模、模式、缩放、复制或规范化过程,只需获取JSON数据即可。使用GraphQL定义访问数据的方式。

以一个类似instagram的应用程序的场景为例。将使用JSON为用户、发布和查询定义规则。

 

 

我们刚刚上传了GraphQL模式,它会自动创建一个集合来存储数据和查询数据的索引。在幕后,它将考虑如何利用基于您提供的GraphQL模式的不同范例,如关系、图表和文档。只是简单地以与在文档数据库中相同的方式添加数据,而且不会受到数据建模的限制。

优点:

缺点:

 

 

以下是Fauna列出的值得注意的重要特点:

 

 

这些并不是全部!要学习的不同的数据库还有很多,但我希望本文的介绍能帮你在设计应用程序时思路清晰有方向。

 

来源:读芯术内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯