mysql,mysqld,数据库的概念理解,为什么要有数据库,主流数据库,mysql架构介绍,存储引擎介绍,sql语句的分类,查看存储引擎(\G)

目录

概念理解

mysql

狭义

广义 

CS模式

mysqld

守护进程 (daemon)

数据库服务

数据库

一般

广义上

数据库

为什么要有数据库

主流数据库​​​​​​​

mysql架构

第一层 -- 链接池

第二层 -- 翻译

第三层 -- 存储引擎​​​​​​​

存储引擎介绍

总结

sql语句分类

DDL(data definition language)

DML(data manipulation language)

DQL(data query language)

DCL(Data Control Language)

查看存储引擎

show engines

\G

常用的存储引擎


概念理解

mysql

狭义

数据库服务的客户端

广义 

基于CS模式的一种网络服务,用于给用户提供数据存取服务

CS模式

C是指Client,S是指Server

CS模式就是指客户端/服务器模式

 

mysqld

  • 数据库服务的服务器端,也就是它会作为数据库网络服务的后台
  • "d"用于指明它是守护进程
守护进程 (daemon)
  • 一种在后台执行,而不由用户直接交互控制的电脑程序
  • 守护进程程序的名称通常以字母d结尾,以指明这个进程实际是守护进程,并与普通的电脑程序区分开来 

 

数据库服务

指的是mysqld

数据库

一般

  • 在磁盘 / 内存中存储的特定结构组织的数据
  • 也就是 -- 在磁盘上存储的一套数据库方案(也就是数据库文件)

广义上

指的是下面这一整套服务:

mysql,mysqld,数据库的概念理解,为什么要有数据库,主流数据库,mysql架构介绍,存储引擎介绍,sql语句的分类,查看存储引擎(\G)_第1张图片

  • mysql客户端接收到指令后,发送给mysqld后台,后台经过分析,去访问磁盘上的结构
  • 从磁盘拿到数据,返回给后台,mysqld后台又经过处理,返回给mysql客户端

 

数据库

为什么要有数据库

  • 数据库是用来存放数据的,但是,文件不是也可以吗,为什么还要设计出数据库呢?
  • 那自然是因为数据库能实现文件不具有的功能
  • 文件只提供了基础管理功能 -- 虽然我们可以查找到文件属性和内容,但是,对于内容的管理必须由程序员自己做
  • 比如,在一堆数据中查找到自己需要的内容,数据量越大,查找的过程就越困难
  • 以下是文件的一些缺点:
  • mysql,mysqld,数据库的概念理解,为什么要有数据库,主流数据库,mysql架构介绍,存储引擎介绍,sql语句的分类,查看存储引擎(\G)_第2张图片
  • 所以,数据库就是对这块功能打的补丁,它是对数据内容存储的一套解决方案,可以提供对内容的管理能力


 

主流数据库​​​​​​​

  • SQL Sever: 微软的产品,.Net程序员的最爱,中大型项目
  • Oracle 甲骨文产品,适合大型项目,复杂的业务逻辑,并发一般来说不如MySQL
  • MySQL:世界上最受欢迎的数据库,属于甲骨文,并发性好,不适合做复杂的业务,主要用在电 商,SNS,论坛。对简单的SQL处理效果好
  • PostgreSQL :加州大学伯克利分校计算机系开发的关系型数据库,不管是私用,商用,还是学术研究使用,可以免费使用,修改和分发
  • SQLite: 是一款轻型的数据库,是遵守ACID的关系型数据库管理系统,它包含在一个相对小的C中。它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了
  • H2: 是一个用Java开发的嵌入式数据库,它本身只是一个类库,可以直接嵌入到应用项目中

不同的数据库,适用于不同的使用场景,其中,mysql的使用最为广泛

mysql架构

​​​​​​​mysql,mysqld,数据库的概念理解,为什么要有数据库,主流数据库,mysql架构介绍,存储引擎介绍,sql语句的分类,查看存储引擎(\G)_第3张图片

第一层 -- 链接池

完成链接管理,认证权限,安全处理等工作

第二层 -- 翻译

  • 将收到的mysql语句进行词法/语法分析
  • 对某些语句进行优化
  • 然后根据协议,将语句传达给下一层
  • (和编译期间所做的工作类似)

第三层 -- 存储引擎​​​​​​​

  • 将收到的sql语句进行解释,然后去访问实际的结构/文件系统
  • (实际干事的,类似于计算机中的驱动)
存储引擎介绍
  • 是数据库管理系统如何存储数据、如何为存储的数据建立索引和如何更新、查询数据等技术的实现方法​​​​​​​
  • 注意看这里的插头:
  • 指的是存储引擎支持插件式使用 --  MySQL 核心就是插件式存储引擎支持多种存储引擎
  • 不同的存储引擎,适用于不同类型的数据/不同的场景

 

总结

  • 所以,总结来看,数据库其实是个文件系统,它可以对数据进行管理
  • 只不过,它是一个[在系统层面之上]的用户级文件系统

sql语句分类

DDL(data definition language)

  • 数据定义语言,用来维护存储数据的结构
  • 代表指令: create, drop, alter

DML(data manipulation language)

  • 数据操纵语言,用来数据进行操作
  • 代表指令: insertdeleteupdate

DQL(data query language)

  • 数据查询语言
  • 代表指令: select

DCL(Data Control Language)

  • 数据控制语言,主要负责权限管理和事务
  • 代表指令: grantrevokecommit

 

查看存储引擎

show engines

mysql,mysqld,数据库的概念理解,为什么要有数据库,主流数据库,mysql架构介绍,存储引擎介绍,sql语句的分类,查看存储引擎(\G)_第4张图片

\G

加上\G选项后,可以格式化显示

(注意,这里的结尾不需要加;)

mysql,mysqld,数据库的概念理解,为什么要有数据库,主流数据库,mysql架构介绍,存储引擎介绍,sql语句的分类,查看存储引擎(\G)_第5张图片

常用的存储引擎

经过各种功能是否支持的对比,下面两种存储引擎是最常用的:

  • innodb
  • myisam

你可能感兴趣的:(mysql,数据库,mysql)