Mariadb的架构及相关概念

冬晨酱_5389

冬晨酱_5389

2024-06-05

1189人浏览

转载

数据库及关系型数据库

数据库(database)是按照数据结构来组织、存储和管理数据的仓库,而mysql、oracle、mariadb等都是数据库管理软件(dbms),是管理数据库用的。

关系型数据库

关系型数据库是一个数据集合,数据存储在相应的数据表中,而“关系”就是指各个表之间的关联。表的每一行代表一条记录,每一列代表一个字段,或称为数据的属性亦可,这种存储方式也是最贴合我们的实际生活,例如下图这张表,从我们上学开始便经常见到。
Mariadb的架构及相关概念

SQL语言

结构化查询语言(Structured Query Language)简称SQL,是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统,同时也是数据库脚本文件的扩展名。

结构化查询语言主要包含3个部分:
一:数据查询语言(DQL:Data Query Language):也称为“数据检索语句”,用以从表中获得数据,确定数据怎样在应用程序给出。
关键字:SELECT、WHERE、ORDER BY、GROUP BY、HAVING
二:数据操作语言(DML:Data Manipulation Language):主要用于添加,修改和删除表中的行。
关键字:INSERT、UPDATE、DELETE
三:数据定义语言(DDL):主要用于在数据库中创建新表或删除表(CREAT TABLE 或 DROP TABLE),为表加入索引等。
关键字:CREATE、DROP

简介

MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,采用GPL授权许可 MariaDB的目的是完全兼容MySQL,包括API和命令行,使之能轻松成为MySQL的代替品。在存储引擎方面,使用XtraDB来代替MySQL的InnoDB。
以上内容抄自百度百科,写本文时的mariadb10.3已经切换为Innodb为默认存储引擎了,其实XtraDB和InnoDB是一回事,可以看作是InnoDB的社区版。

Mariadb逻辑架构

Mariadb的架构及相关概念
当Mariadb接受到Sql语句时,其详细的执行过程如下:
1 当客户端连接到 mariadb 的时候,会认证客户端的主机名,用户,密码,认证功能可以做成
插件。
2 如果登录成功,客户端发送 sql 命令到服务端
3 由解析器解析 sql 语句
4 服务端检查客户端是否有权限去获取它想要的资源
5 如果查询已经存储在 query cache 当中,那么结果立即返回
6 优化器将会找出最快的执行策略,或者是执行计划,也就是说优化器可以决定什么表将会被读,以及哪些索引会被访问,哪些临时表会被使用,一个好的策略能够减少大量的磁盘访问和排序操作等。
7 存储引擎读写数据和索引文件,cache 用来加速这些操作,其他的诸如事物和外键特性,都是在存储引擎层处理的。

实例

MySQL(Mariadb)是单进程多线程,也就是说,每一个Mysql实例在系统上就是一个服务进程,一个实例可以拥有不同的配置文件、端口,管理不同的数据库等,Mariadb 实例其实就是个 mysqld 文件,在Linux 上,可以直接运行,但是一般都是由mysqld_safe 脚本来调用,mysqld_safe 脚本既可以启动实例,又可以重启意外终端的实例,在生产环境中比 mysqld 更安全。

Obsidian (Linux)
Obsidian (Linux)

操作 Obsidian 库(纯 Markdown 笔记),并通过 notesmd-cli 实现自动化。

下载
存储引擎

存储引擎在物理层管控数据,它负责数据文件、数据、索引、cache等的管理,这使得管理和读取数据变得更高效,每一张表,都有一个.frm 文件,这些文件包含着表的定义。
使用 “show engines” 命令或者通过查询 information_schema.engines 表可以查看存储引擎相关变量,如下图:
Mariadb的架构及相关概念
每一个存储引擎管理、存储数据的方式都是不同的,所支持的特性和性能也不尽相同,例如:
MyISAM,适合读多写少的环境,且不支持事务,支持全文索引等
InoDB,支持事务,支持行锁和外键等
MEMORY,将数据存储在内存当中
CSV,将数据存储为CSV格式
等等等,所以,选择合适的数据引擎尤为重要。

查看当前默认是什么存储引擎:
SELECT @@global.storage_engine;

mysql命令行技巧
解决输出过长

\G 标识符的使用,将每一行记录当作一页输出,如下图:
Mariadb的架构及相关概念
Mariadb的架构及相关概念

\P 标识符设定pager,常用的pager有less、more、grep、md5sum等,说白了就是使用管道将标准输出(STO)输出到Pager中去。
Mariadb的架构及相关概念

相关专题

更多
数据分析工具有哪些
数据分析工具有哪些

数据分析工具有Excel、SQL、Python、R、Tableau、Power BI、SAS、SPSS和MATLAB等。详细介绍:1、Excel,具有强大的计算和数据处理功能;2、SQL,可以进行数据查询、过滤、排序、聚合等操作;3、Python,拥有丰富的数据分析库;4、R,拥有丰富的统计分析库和图形库;5、Tableau,提供了直观易用的用户界面等等。

2023.10.12

4683

8

SQL中distinct的用法
SQL中distinct的用法

SQL中distinct的语法是“SELECT DISTINCT column1, column2,...,FROM table_name;”。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.27

971

4

SQL中months_between使用方法
SQL中months_between使用方法

在SQL中,MONTHS_BETWEEN 是一个常见的函数,用于计算两个日期之间的月份差。想了解更多SQL的相关内容,可以阅读本专题下面的文章。

2024.02.23

1229

5

SQL出现5120错误解决方法
SQL出现5120错误解决方法

SQL Server错误5120是由于没有足够的权限来访问或操作指定的数据库或文件引起的。想了解更多sql错误的相关内容,可以阅读本专题下面的文章。

2024.03.06

6681

10

sql procedure语法错误解决方法
sql procedure语法错误解决方法

sql procedure语法错误解决办法:1、仔细检查错误消息;2、检查语法规则;3、检查括号和引号;4、检查变量和参数;5、检查关键字和函数;6、逐步调试;7、参考文档和示例。想了解更多语法错误的相关内容,可以阅读本专题下面的文章。

2024.03.06

3403

4

oracle数据库运行sql方法
oracle数据库运行sql方法

运行sql步骤包括:打开sql plus工具并连接到数据库。在提示符下输入sql语句。按enter键运行该语句。查看结果,错误消息或退出sql plus。想了解更多oracle数据库的相关内容,可以阅读本专题下面的文章。

2024.04.07

6660

11

sql中where的含义
sql中where的含义

sql中where子句用于从表中过滤数据,它基于指定条件选择特定的行。想了解更多where的相关内容,可以阅读本专题下面的文章。

2024.04.29

9181

6

sql中删除表的语句是什么
sql中删除表的语句是什么

sql中用于删除表的语句是drop table。语法为drop table table_name;该语句将永久删除指定表的表和数据。想了解更多sql的相关内容,可以阅读本专题下面的文章。

2024.04.29

1250

5

sql中删除一列的命令是什么
sql中删除一列的命令是什么

在sql中,使用alter table语句可以删除一列,语法为:alter table table_name drop column column_name。想了解更多sql的相关内容,可以阅读本专题下面的文章。

2024.04.29

1092

5

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Python uv官方安装与入门文档
Python uv官方安装与入门文档

共0课时 | 0人学习

Buffalo框架快速入门指南
Buffalo框架快速入门指南

共0课时 | 0人学习

Valgrind支持平台说明
Valgrind支持平台说明

共0课时 | 0人学习