初识数据库与基本概念

首先咱们看一下DB-Engines(https://db-engines.com/en/ranking)的数据库流行度排行榜。虽然只截取了前二十,但也基本囊括了常见的数据库。当然,咱们这里不讨论云数据库。在这里插入图片描述

数据库基本概念

这里简单对数据库的一些基本概念画了个图。遵循基本原则,尽量不讲重复的知识点,只挑几个重点讲一下,没讲到的那些专业术语大家有兴趣就百度吧。
在这里插入图片描述

数据库类型:

对DB-Engines上的部分数据库也做个表格如下:
注:只讨论社区版/单机版,企业版/集群版本不包含在其中
请不要钻空子:比如Windows下的ORACLE就是单进程的,它用于教育和学习是不收费的等等。。。

数据库是否关系型是否付费是否开源单/多进程
ORACLE关系型数据库收费闭源多进程架构
MySQL关系型数据库免费开源单进程架构
MSSQL关系型数据库收费闭源单进程架构
PostgreSQL关系型数据库免费开源多进程架构
MongoDB文档数据库(非关系型)免费开源单进程架构
DB2关系型数据库收费闭源多进程架构
Elasticsearch搜索引擎数据库(非关系型)免费开源单进程架构
Redis键值/内存数据库(非关系型)免费开源单进程架构
MariaDB关系型数据库免费开源单进程架构
HBase列存储数据库(非关系型)免费开源单进程架构
Neo4J图形数据库(非关系型)免费开源单进程架构
InfluxDB时序数据库(非关系型)免费开源单进程架构

多进程vs单进程

不知道大家有没有听到关于多进程和单进程这两种架构的争论?其实也没啥好争论的,两种架构各有优缺点。这里简单说下单进程和多进程架构(以ORACLE和MySQL为比较对象):
单进程数据库其实就是在操作系统中体现为一个独立的服务进程。单进程多线程的架构,进程数据共享,所以线程之间的通讯效率非常高,对于大规模并发十分有利,不过也会出现线程数过多,线程调度开销过大甚至OOM的情况。所以这种架构比较适合小访问中连接大并发的场景。
而多进程架构的每个服务都是独立的进程,他们之间的隔离比较好,互相影响较小。但同样由于独立,他们之间的数据共享和进程交互就比较复杂了,不过ORACLE无与伦比的内存结构技术让其不惧任何挑战。

数据库vs实例

说到数据库,又不得不说实例。可能大家经常听到数据库,实例这样的名词。那么到底什么是数据库,什么是实例?(这也是我非常喜欢用来面试初/中级DBA的一个题目)
数据库就是用来存储数据的,但是数据库怎么对外提供服务和访问?应用程序直接打开数据文件操作数据库?还是通过某种媒介去访问数据库?
显而易见,应用程序无法直接访问数据库,而需要通过一种逻辑结构去访问数据库,这个结构被称之为实例(Instance)。换句话说就是数据库实例是访问数据库的通道。

数据库:就是一系列的物理文件,拿ORACLE来说,有密码文件、参数文件、控制文件、数据文件、日志文件等
实例:就是操作系统中为数据库服务的一系列进程以及为这些进程所分配使用的内存。

  • 5
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值