系统设计之数据库

为您的项目选择正确的数据库是一项复杂的任务。许多数据库选项都适合不同的用例,很快就会导致决策疲劳。

我们希望这份备忘单提供高级指导,以找到符合您项目需求的正确服务并避免潜在的陷阱。

注意:Google 关于其数据库用例的文档有限。尽管我们尽力查看可用的内容并得出最佳选择,但某些条目可能需要更准确。

一、国外数据库产品

 二、国内数据库产品

三、数据库提供支持的 8 种数据结构

答案会根据您的用例而有所不同。数据可以在内存或磁盘上建立索引。同样,数据格式也各不相同,例如数字、字符串、地理坐标等。系统可能是写入密集型的,也可能是读取密集型的。所有这些因素都会影响您对数据库索引格式的选择。

以下是一些用于索引数据的最流行的数据结构:

  • Skiplist:常见的内存索引类型。用于Redis
  • 哈希索引:“Map”数据结构(或“Collection”)的一种非常常见的实现
  • SSTable:不可变的磁盘“Map”实现
  • LSM树:Skiplist + SSTable。高写入吞吐量
  • B 树:基于磁盘的解决方案。一致的读/写性能
  • 倒排索引:用于文档索引。在Lucene中使用
  • 后缀树:用于字符串模式搜索
  • R-tree:多维搜索,比如寻找最近邻居

四、SQL 语言组件

  • DDL:数据定义语言,如CREATE、ALTER、DROP
  • DQL:数据查询语言,如SELECT
  • DML:数据操作语言,如INSERT、UPDATE、DELETE
  • DCL:数据控制语言,如GRANT、REVOKE
  • TCL:事务控制语言,如COMMIT、ROLLBACK

下图显示了该过程。请注意,不同数据库的架构有所不同,该图演示了一些常见的设计。

通过传输层协议(例如TCP)将SQL 语句发送到数据库。

  1. SQL 语句被发送到命令解析器,在其中进行语法和语义分析,然后生成查询树。
  2. 查询树被发送到优化器。优化器创建执行计划。
  3. 将执行计划发送给执行者。执行器从执行中检索数据。
  4. 访问方法提供执行所需的数据获取逻辑,从存储引擎检索数据。
  5. 访问方法决定 SQL 语句是否是只读的。如果查询是只读的(SELECT 语句),则会将其传递到缓冲区管理器以进行进一步处理。缓冲区管理器在缓存或数据文件中查找数据。
  6.  如果语句是 UPDATE 或 INSERT,则将其传递到事务管理器以进行进一步处理。
  7.  在事务期间,数据处于锁定模式。这是由锁管理器保证的。它还确保了事务的 ACID 属性。

五、SQL查询可视化

SQL语句由数据库系统分几个步骤执行,包括:

  • 解析SQL语句并检查其有效性
  • 将 SQL 转换为内部表示,例如关系代数
  • 优化内部表示并创建利用索引信息的执行计划
  • 执行计划并返回结果

SQL的执行非常复杂,涉及很多考虑因素,例如:

  • 索引和缓存的使用
  • 表连接的顺序
  • 并发控制
  • 事物管理

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/207559.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

软件测试卷王的自述,我难道真的很卷?

前言 前段时间去面试了一个公司,成功拿到了offer,薪资也从12k涨到了18k,对于工作都还没两年的我来说,还是比较满意的,毕竟一些工作3、4年的可能还没我高。 我可能就是大家说的卷王,感觉自己年轻&#xff…

北邮22级信通院数电:Verilog-FPGA(12)第十二周实验(2)彩虹呼吸灯(bug已解决 更新至3.0)

北邮22信通一枚~ 跟随课程进度更新北邮信通院数字系统设计的笔记、代码和文章 持续关注作者 迎接数电实验学习~ 获取更多文章,请访问专栏: 北邮22级信通院数电实验_青山如墨雨如画的博客-CSDN博客 目录 一.代码部分 1.1一些更新和讲解 1.2改正后的…

解密HubSpot CMS Hub:构建引人入胜的企业网站!

在数字化时代,网站是企业与客户互动的重要窗口。为了在竞争激烈的市场中脱颖而出,企业需要一个现代化、用户友好且高度可定制的网站。而HubSpot CMS Hub作为一款领先的内容管理系统,为企业提供了独特的优势,让网站建设变得更加轻松…

Private Set Intersection from Pseudorandom CorrelationGenerators 最快PSI!导览解读

目录 一、概述 二、相关介绍 三、性能对比 四、技术细节 1.KKRT 2.Pseudorandom Correlation Generators 3.A New sVOLE-Based BaRK-OPRF 4.BaRK-OPRF 五、总结 参考文献 一、概述 这篇文章的主要脉络和核心思想是探讨如何利用伪随机相关生成器(PCG&#…

【AI】以大厂PaaS为例,看人工智能技术方案服务能力的方向(2/2)

目录 三、解决方案 3.1 人脸身份验证 3.2 图像审核(暴恐、色情等) 3.3 人脸会场签到 3.4 机器人视觉 3.5 视频审核 3.6 电商图文详情生成 3.7 智能客服 接上回: 【AI】以大厂PaaS为例,看人工智能技术方案服务能力的方向&…

Mybatis实用教程之XML实现动态sql

系列文章目录 1、mybatis简介及数据库连接池 2、mybatis中selectOne的使用 3、mybatis简单使用 4、mybatis中resultMap结果集的使用 Mybatis实用教程之XML实现动态sql 系列文章目录前言1. 动态条件查询2. 动态更新语句3. 动态插入语句4、其他标签的使用 前言 当编写 MyBatis 中…

力扣labuladong——一刷day67

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、力扣582.杀掉进程二、力扣536.从字符串生成二叉树 前言 二叉树的递归分为「遍历」和「分解问题」两种思维模式,这道题需要用到「遍历」的思维模…

麒麟系统进入救援模式或者是crtl D界面排查方法

如出现以下图片的情况可能需要修复磁盘: V10GFB-desktop: 开机后发现一致卡在此界面: 按esc键后有以下报错信息说明在/etc/fstab里面编写的外挂磁盘的命令有问题 解决方法如下:进入单用户模式对/etc/fstab进行修改: …

springboot-mongodb-连接配置

文章目录 配置Maven依赖URL格式单节点配置示例副本集&#xff08;含连接池配置&#xff09; 配置Maven依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-mongodb</artifactId></dependenc…

智能优化算法应用:基于侏儒猫鼬算法无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用&#xff1a;基于侏儒猫鼬算法无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用&#xff1a;基于侏儒猫鼬算法无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.侏儒猫鼬算法4.实验参数设定5.算法结果6.参考…

facebook广告运营技巧

在Facebook上进行广告运营需要一定的技巧和策略。以下是一些建议&#xff1a; 明确目标&#xff1a;在创建广告之前&#xff0c;你需要明确你的目标。这可能包括增加品牌知名度、提高网站流量、增加销售等等。明确目标后&#xff0c;你可以将广告与这些目标相结合&#xff0c;…

【五分钟】熟悉python列表和元组的异同点【看这篇够用!建议收藏】

引言 Python&#xff0c;是一种广泛应用于数据科学、机器学习等领域的高级编程语言&#xff0c;支持多种丰富多样的数据类型&#xff0c;其中包括列表和元组。尽管这两种数据结构都可用于存储多个值&#xff0c;但它们在功能和特性上存在着明显的差异。在接下来的博客中&#…

天津大数据培训机构品牌 数据分析师的发展方向

大数据专业还是有一定难度的&#xff0c;毕竟大数据开发技术所包含的编程技术知识是比较杂且多的如果是计算机专业的学生或者自身有一定基础的人学&#xff0c;相对来说会比较容易&#xff0c;但对于零基础小伙伴学习来说&#xff0c;想要学习大数据&#xff0c;难度还是很高的…

3D Web可视化平台助力Aras开发PLM系统:提供数据访问、可视化和发布功能

HOOPS中文网慧都科技是HOOPS全套产品中国地区指定授权经销商&#xff0c;提供3D软件开发工具HOOPS售卖、试用、中文试用指导服务、中文技术支持。http://techsoft3d.evget.com/ Aras是一个面向数字化工业应用的开放性平台&#xff0c;帮助世界领先的复杂互联产品制造商转变其产…

大三上实训内容

项目一&#xff1a;爬取天气预报数据 【内容】 在中国天气网(http://www.weather.com.cn)中输入城市的名称&#xff0c;例如输入信阳&#xff0c;进入http://www.weather.com.cn/weather1d/101180601.shtml#input 的网页显示信阳的天气预报&#xff0c;其中101180601是信阳的…

SpringCloud面试题——Nacos

一&#xff1a;什么是Nacos&#xff1f; 二&#xff1a;服务心跳与服务注册原理&#xff1f; 在spring容器启动的时候&#xff0c;nacos客户端会进行两步操作。 向nacos服务端发送心跳向nacos服务端注册当前服务 服务心跳 客户端在启动的时候&#xff0c;会开启一个心跳线程…

私域运营:掌控用户,领航变革

随着互联网技术的迅速进步&#xff0c;众多电商平台如雨后春笋般涌现。尽管淘宝、京东等第三方平台在流量和销售额方面占据了绝对优势&#xff0c;但私域流量运营的兴起也引发了广泛关注。尽管尚处于初级阶段&#xff0c;但私域运营已成为当前最热门的话题之一。 私域运营指的…

HttpComponents: 概述

文章目录 1. 概述2. 生态位 1. 概述 早期的Java想要实现HTTP客户端需要借助URL/URLConnection或者自己手动从Socket开始编码&#xff0c;需要处理大量HTTP协议的具体细节&#xff0c;不但繁琐还容易出错。 Apache Commons HttpClient的诞生就是为了解决这个问题&#xff0c;它…

高德地图画渐变线

高德地图画渐变线&#xff0c;思路是将线和颜色均分为多个小线段和小颜色&#xff0c;实现渐变&#xff0c;类似于下图。 如果需要多段线&#xff0c;自己循环拼一下就可以了&#xff0c;方法返回多个小线段组成的polyline数组。 /** 高德地图画渐变线* author: liyun* params…

【WPS】Excel表格数据透视表

数据少量还好&#xff0c;如果输数多起来就麻烦了&#xff0c;最近需要汇报一个情况。 描述 譬如&#xff1a;开发&#xff08;80.00%->91.16%&#xff09;&#xff1a;共计43项&#xff08;本周新增1项&#xff09;&#xff0c;本周新增已完成2项&#xff0c;共已完成36项…