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

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介:

菜鸟学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


相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
4天前
|
Linux
Linux(5)WIFI/BT调试笔记
Linux(5)WIFI/BT调试笔记
20 0
|
5天前
|
Linux 编译器 Android开发
FFmpeg开发笔记(九)Linux交叉编译Android的x265库
在Linux环境下,本文指导如何交叉编译x265的so库以适应Android。首先,需安装cmake和下载android-ndk-r21e。接着,下载x265源码,修改crosscompile.cmake的编译器设置。配置x265源码,使用指定的NDK路径,并在配置界面修改相关选项。随后,修改编译规则,编译并安装x265,调整pc描述文件并更新PKG_CONFIG_PATH。最后,修改FFmpeg配置脚本启用x265支持,编译安装FFmpeg,将生成的so文件导入Android工程,调整gradle配置以确保顺利运行。
24 1
FFmpeg开发笔记(九)Linux交叉编译Android的x265库
|
1天前
|
关系型数据库 MySQL Java
Linux 安装 JDK、MySQL、Tomcat(图文并茂)
Linux 安装 JDK、MySQL、Tomcat(图文并茂)
12 2
|
3天前
|
关系型数据库 MySQL 中间件
【MySQL实战笔记】07 | 行锁功过:怎么减少行锁对性能的影响?-02 死锁和死锁检测
【4月更文挑战第19天】在高并发环境下,死锁发生在多个线程间循环等待资源时,导致无限期等待。MySQL中,死锁可通过`innodb_lock_wait_timeout`参数设置超时或`innodb_deadlock_detect`开启死锁检测来解决。默认的50s超时可能不适用于在线服务,而频繁检测会消耗大量CPU。应对热点行更新引发的性能问题,可以暂时关闭死锁检测(风险是产生大量超时),控制并发度,或通过分散记录减少锁冲突,例如将数据分拆到多行以降低死锁概率。
19 1
|
4天前
|
Linux Android开发
Linux(6)CH9434 SPI调试笔记
Linux(6)CH9434 SPI调试笔记
12 0
|
9天前
|
存储 关系型数据库 MySQL
Linux | MySQL基础
Linux | MySQL基础
|
9天前
|
关系型数据库 MySQL Linux
Linux联网安装MySQL Server
Linux联网安装MySQL Server
22 0
|
5天前
|
机器学习/深度学习 缓存 监控
linux查看CPU、内存、网络、磁盘IO命令
`Linux`系统中,使用`top`命令查看CPU状态,要查看CPU详细信息,可利用`cat /proc/cpuinfo`相关命令。`free`命令用于查看内存使用情况。网络相关命令包括`ifconfig`(查看网卡状态)、`ifdown/ifup`(禁用/启用网卡)、`netstat`(列出网络连接,如`-tuln`组合)以及`nslookup`、`ping`、`telnet`、`traceroute`等。磁盘IO方面,`iostat`(如`-k -p ALL`)显示磁盘IO统计,`iotop`(如`-o -d 1`)则用于查看磁盘IO瓶颈。
|
1天前
|
监控 Linux Windows
50个必知的Linux命令技巧,你都掌握了吗?(下)
50个必知的Linux命令技巧,你都掌握了吗?(下)
|
2天前
|
Linux Shell Windows
Linux 常用基本命令
Linux 常用基本命令