Mysql数据库基础(一)—— Mysql架构

数据库可以看做是一个管理和存储数据的软件平台,虽然文件也可以存储数据,但是用文件存储数据有着诸多不便,如不安全、不利于查询和管理、程序不方便控制等。

数据库很好的解决了上述问题,它能更加有效的管理数据。不同场景下,使用的数据库也会有所不同,大多数场景下使用的是Mysql、Oracle,嵌入式设备可能会用到 Sqlite。


          目录

1、Mysql 架构

2、SQL分类(客户端内容)

3、存储引擎(服务端内容) 

4、Mysql存储位置(存储介质内容)


1、Mysql 架构

Mysql 是一个CS架构,主要包含三部分内容:

  • 客户端:数据库操作请求的发起者。使用者希望执行的操作(增删查改)都是从这里发起的。
  • 服务端:负责处理来自客户端的请求。存储引擎就是服务端的一部分。
  • 存储介质:可以简单理解为是磁盘 / 内存。服务端生成的库文件和表文件都会被保存到此。

Mysql数据库基础(一)—— Mysql架构_第1张图片

2、SQL分类(客户端内容)

客户端作为请求的发起者,那么它以何种形式来操作数据库的呢?其实就是我们常说的SQL语言。按照功能分类,SQL语言大体可以分为三类:

SQL语言 用途
DDL(数据定义语言)

用来维护存储数据的结构。维护的对象是库

代表指令:create、drop、alter

DML(数据操纵语言)

用来对数据进行操作。维护的对象是表

代表指令:insert、delete、update

DCL(数据控制语言)

负责权限管理和事务。维护的对象是mysql本身

代表指令:grant、revoke、commit

3、存储引擎(服务端内容) 

存储引擎是Mysql的核心,存储引擎负责的内容:

  • 存储数据
  • 为存储的数据建立索引
  • 更新数据
  • 查询数据
  • ... ...

我们可以自由选择Mysql的存储引擎,这正得益于存储引擎的插拔特性。每个存储引擎可以看作是一个子类指针,上层可以看作是基类指针,要使用哪个搜索引擎,直让这个基类指针指向对应的子类指针。(不同搜索引擎创建表文件时,生成的文件会有所不同

Mysql数据库基础(一)—— Mysql架构_第2张图片

mysql 查看支持的存储引擎的命令:show engines;

Mysql数据库基础(一)—— Mysql架构_第3张图片

在Mysql配置文件my.cnf 中设置默认搜索引擎

default-storage-engine=innodb

4、Mysql存储位置(存储介质内容)

Mysql 配置文件路径是 /etc/my.cnf ,其中包含数据存储位置、套接字文件的存储位置等配置,甚至一些其他操作,如免密登录。      

Mysql数据库基础(一)—— Mysql架构_第4张图片

(1) 数据存储

我们创建的库文件表文件都被保存在该路径下,如果我们要删除数据库中的某个库,最简单粗暴的方法就是直接删除库目录,或者说我们想把库文件移植到其他主机上,也是可以正常使用的。

左边是 /var/lib/mysql 目录中的内容,右边是Mysql的库列表

Mysql数据库基础(一)—— Mysql架构_第5张图片

Mysql数据库基础(一)—— Mysql架构_第6张图片

(2) 套接字文件 mysql.sock

Mysql 是一个网络服务,Mysql允许跨主机登录,即可以在当前主机连接到其他主机的Mysql服务端;如果Mysql 的服务端就安装在当前主机上,那么一般使用的是unix 套接字通信。

Mysql数据库基础(一)—— Mysql架构_第7张图片

(3) 日志文件 mysqld.log

保存了Mysql的日志信息,比如我们无法登录Mysql时,可以在该文件中查看错误信息。

Mysql数据库基础(一)—— Mysql架构_第8张图片

你可能感兴趣的:(Mysql,/,Sqlite,数据库,数据库)