ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

数据库的核心组件有哪些

2021-11-29 13:32:46  阅读:150  来源: 互联网

标签:存储管理 存储 需要 哪些 数据库 支持 组件 优化


  为了实现这些核心功能,通常数据库会包括以下核心组件:

  a. 存储管理

  数据用什么样的方式来组织、存储,是 key-value 还是关系型,是按行存还是按列存,支不支持压缩,支不支持删除和修改,支持什么样的数据类型和存储接口,POSIX 还是对象存储。是否要支持计算存储分离,是否要支持分布式存储,是否支持事物处理,是否支持多副本,采用什么算法来加速数据的检索(索引)等等。存储管理是数据库的核心组件,解决了存储管理问题,数据库的问题就解决了一半了。

  

 

  b. 查询优化器

  要提高数据查询的效率,数据库必须找到一条最优化的执行路径,比如,查询时是否需要使用索引,如果有多个索引,应该选择哪一个,如果数据分布在不同的存储单元(表、集合等)里,应该按照什么顺序来访问效率最高等等。优化器面对的问题可能是一个极其复杂的路径规划问题,它需要在很短的时间里计算出最优路径,需要大量核心优化算法,属于数据库中复杂程度最高的部分。郑州哪家医院看心理咨询好http://www.hyde8871.com/

  举个例子,你要带着全家人,包括老人、小孩一起从上海去海南旅行,要制作一个性价比最好、家人满意度最高的计划,那么在计划时需要考虑哪些因素呢?首先,怎么去,是开车去,还是火车去,还是飞机去。开车,路上要花多久,中间需要休息几次,你和太太有没有时间,老人孩子是不是受得了,汽油费用,过路费用;飞机,怎么去机场,行李有多少,带不带得下,机票有没有打折,下了飞机怎么办等等。住什么酒店,去什么景点,老人喜欢去人多的人文景观,太太喜欢安静的地方和方便购物的地方,小孩喜欢有游乐场的地方,要不要酒店 + 景点一起订,会不会有优惠,要不要租车,租什么车......说到这里,是不是可以体会一个查询优化器需要考虑的问题有多少?

  

 

  当然,这部分工作可以有相对简单的实现(基于规则),比如太太说了,时间确定、飞机来回、五星酒店、带私人沙滩,这样计划就会简单很多。然而,这份工作也可能复杂到难以想象(基于机器学习、基于实际开销等等),比如太太说你全权负责,具体时间不确定,大概在 8月 - 9月,要少花钱多办事,多做调研,找一个最优方案。那么做这个计划就会非常复杂,需要的支持决策信息就会非常多。这样做出来的决策大概率相对会优化,比基于规则实现的计划能适应更多场景。

  c. 执行模块

  优化器做好了执行计划后,接下来就会有执行的模块按照执行计划对数据进行相关的计算,包括数据的存取、常规的加减乘除、排序、平均值、哈希,也会包括一些机器学习的算法,数据的压缩/解压缩,最后将计算完成的结果返回给客户端。

  

 

  d. 内部管理和调度

  数据库要正常地工作,还会需要一些内部协调管理的模块,比如内存和存储同步,存储空间整理,元数据管理,集群状态检测,容错和故障恢复等。

  e. 管理工具和接口

  为了提高易用性,数据库都需要提供一套管理工具,比如备份/恢复、状态检测、运行时监控、资源隔离、权限管理、安全审计、自定义接口、各种数据访问接口等。

标签:存储管理,存储,需要,哪些,数据库,支持,组件,优化
来源: https://www.cnblogs.com/gyshht/p/15618974.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有