菜鸟学Linux 第071篇笔记 Mysql理论

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介:

菜鸟学Linux 第071篇笔记 Mysql理论



接下来课程

MySQL

SQL/MySQL 语句

事务: 隔离,并发控制,锁

用户和权限

监控

STATUS

索引类型:查询

VARIABLES

备份和恢复

复制功能(同步数据库)

集群



数据库历史

文件管理数据缺点

数据冗余和不一致性

数据访问困难

数据孤立

数据完整性问题

原子性问题

并发访问异常

安全性问题


文件

表示层

文件

逻辑层

文件系统 (将底层的数据块表示为文件的形式供最终用户查看,

   用户存储文件时文件系统将文件解构为二进制存到硬盘)

存储引擎

物理层

元数据

数据:数据块



由上原因,所以产生了DBMS

DBMS

层次模型

网状模型

关系模型

RDBMS





关系模型 (结构化数据模型)

关系模型

实体*关系模型

对象关系模型:基于对象的数据模型

半结构化数据模型 XML (扩展标记语言)




关系:关系代数运算

交集

并集

差集

补集



SQL (Structure Query Language)

DML (Data Manipulation Language)

INSERT

DELETE

SELECT

UPDATE

DDL (Data Definition Language)

CREATE

DROP

ALTER

DCL (Data Control Language)

GRANT

REVOKE



RDB对象

库、表、索引、视图、用户、存储过程、存储函数、触发器、事件设库器


约束 constraint

域约束:数据类型的约束

外键约束:引用完整性约束

主键约束:某字段能唯一标识此字段所属的实体,并且不允许为空,

  主键条目不可相同,一张表只可以有一个主键

唯一性约束:每一行的某字段都不允许出现相同值,可以为空

  一张表可以有多个

检查性约束:



关系型数据

表示层:表

逻辑层:存储引擎,解构

物理层:数据文件


70年

System R: SQL

Ingres, Oracle, Sybase

ANSI: ansi-sql




如何进行数据存储和查询

存储管理器(功能)

权限及完整性管理器

事务管理器

文件管理器

缓冲区管理器

查询管理器

DML解释器

DDL解释器

查询执行引擎




数据不允许一个线程响应多个请求,一般为一个线程响应一个请求

单进程,多线程

守护线程

应用线程

Thread Reuse




关系运算

投影: 只输出指定字段

选择: 只输出符合条件的行

自然连接: 具有相同名字的属性上所有取值相同的行

笛卡尔积: (a+c)*(c+d)=ac+ad+bd+bd

并: union 集合运算




SQL查询语句

sequel-->SQL

SQL-86

SQL-89

SQL-92

SQL-99

SQL-03

SQL-08



SQL语言的组成部分

DDL

DML

完整性定义语言: DDL的一部分功能

视图定义

事务控制

嵌入式SQL和动态SQL

DCL



使用程序设计语言如何跟RDBMS交互

嵌入式SQL  与动态SQL类似,但其语言必须程序编译时确定下来 ODBC

动态SQL 程序设计语言使用函数(mysql_connect())

或者方法与RDBMS服务器建立连接,并进行交互;通过建立连接向SQL服务器发

送查询语句,并将结果保存至变量中而后进行处理  JDBC



MySQL 组成部分

连接管理器

连接管理器

线程管理器

解析器

缓存

优化器

插件式存储引擎

MySAM (不支持事务)

InnoDB (支持事务)




MySQL 命令执行过程


用户连接请求-->连接管理器-->线程管理器

用户模块

缓存模块<-- 命令分发器 -->日志模块

解析器

优化器 表定义模块 表维护模块 复制模块 状态报告模块

访问控制模块

表管理器

存储引擎


表管理器:负责创建、读取或修改表定义文件;维护表描述符高速缓存;管理表锁;

表结构定义文件

表定义模块: 表创建、删除、重命名、移除、更新或插入之类的操作;

表维护模块: 检查、修改、备份、恢复、优化(碎片整理)及解析;




文件中记录组织:

堆文件组织: 一条记录可以放在文件中的任何地方

顺序文件组织: 根据“搜索码”的值进行存放

散列文件组织: 




表结构定义文件, 表数据文件

表空间: table space


数据字典: Data Dictionary

关系的元数据

关系的名字

字段名称

字段类型和长度

视图

约束


用户名字,授权,密码



缓冲区管理器

缓存置换策略

被钉住的块

本文转自Winthcloud博客51CTO博客,原文链接http://blog.51cto.com/winthcloud/1889480如需转载请自行联系原作者


Winthcloud


相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
8天前
|
关系型数据库 MySQL Linux
Linux环境下MySQL数据库自动定时备份实践
数据库备份是确保数据安全的重要措施。在Linux环境下,实现MySQL数据库的自动定时备份可以通过多种方式完成。本文将介绍如何使用`cron`定时任务和`mysqldump`工具来实现MySQL数据库的每日自动备份。
23 3
|
8天前
|
监控 关系型数据库 MySQL
Linux环境下MySQL数据库自动定时备份策略
在Linux环境下,MySQL数据库的自动定时备份是确保数据安全和可靠性的重要措施。通过设置定时任务,我们可以每天自动执行数据库备份,从而减少人为错误和提高数据恢复的效率。本文将详细介绍如何在Linux下实现MySQL数据库的自动定时备份。
21 3
|
18天前
|
关系型数据库 MySQL Linux
Linux系统如何设置自启动服务在MySQL数据库启动后执行?
【10月更文挑战第25天】Linux系统如何设置自启动服务在MySQL数据库启动后执行?
64 3
|
30天前
|
Linux API 开发工具
FFmpeg开发笔记(五十九)Linux编译ijkplayer的Android平台so库
ijkplayer是由B站研发的移动端播放器,基于FFmpeg 3.4,支持Android和iOS。其源码托管于GitHub,截至2024年9月15日,获得了3.24万星标和0.81万分支,尽管已停止更新6年。本文档介绍了如何在Linux环境下编译ijkplayer的so库,以便在较新的开发环境中使用。首先需安装编译工具并调整/tmp分区大小,接着下载并安装Android SDK和NDK,最后下载ijkplayer源码并编译。详细步骤包括环境准备、工具安装及库编译等。更多FFmpeg开发知识可参考相关书籍。
82 0
FFmpeg开发笔记(五十九)Linux编译ijkplayer的Android平台so库
|
1月前
|
Ubuntu 关系型数据库 MySQL
Linux系统MySQL安装
【10月更文挑战第19天】本文介绍了在 Linux 系统上安装 MySQL 的步骤,包括安装前准备、安装 MySQL、启动 MySQL 服务、配置 MySQL 以及验证安装。适用于 Ubuntu/Debian 和 CentOS/Fedora 系统,提供了详细的命令示例。
151 1
|
9天前
|
SQL 关系型数据库 MySQL
go语言数据库中mysql驱动安装
【11月更文挑战第2天】
23 4
|
7天前
|
SQL 关系型数据库 MySQL
12 PHP配置数据库MySQL
路老师分享了PHP操作MySQL数据库的方法,包括安装并连接MySQL服务器、选择数据库、执行SQL语句(如插入、更新、删除和查询),以及将结果集返回到数组。通过具体示例代码,详细介绍了每一步的操作流程,帮助读者快速入门PHP与MySQL的交互。
20 1
|
1月前
|
存储 关系型数据库 MySQL
Mysql(4)—数据库索引
数据库索引是用于提高数据检索效率的数据结构,类似于书籍中的索引。它允许用户快速找到数据,而无需扫描整个表。MySQL中的索引可以显著提升查询速度,使数据库操作更加高效。索引的发展经历了从无索引、简单索引到B-树、哈希索引、位图索引、全文索引等多个阶段。
61 3
Mysql(4)—数据库索引
|
16天前
|
监控 关系型数据库 MySQL
数据库优化:MySQL索引策略与查询性能调优实战
【10月更文挑战第27天】本文深入探讨了MySQL的索引策略和查询性能调优技巧。通过介绍B-Tree索引、哈希索引和全文索引等不同类型,以及如何创建和维护索引,结合实战案例分析查询执行计划,帮助读者掌握提升查询性能的方法。定期优化索引和调整查询语句是提高数据库性能的关键。
82 1
|
18天前
|
关系型数据库 MySQL Linux
在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,包括准备工作、下载源码、编译安装、配置 MySQL 服务、登录设置等。
本文介绍了在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,包括准备工作、下载源码、编译安装、配置 MySQL 服务、登录设置等。同时,文章还对比了编译源码安装与使用 RPM 包安装的优缺点,帮助读者根据需求选择最合适的方法。通过具体案例,展示了编译源码安装的灵活性和定制性。
60 2