第430集数据库存储过程
数据库存储过程1. 存储过程概述1.1 什么是存储过程存储过程(Stored Procedure)是一组为了完成特定功能的SQL语句集合,经过编译后存储在数据库中。存储过程把经常使用的SQL语句或业务逻辑封装起来,预编译保存在数据库中,当需要时从数据库中直接调用。
核心特性:
预编译:存储过程在创建时编译,执行时无需再编译
封装性:将复杂的业务逻辑封装在数据库中
可重用性:一次创建,多次调用
安全性:可以控制对数据的访问权限
1.2 存储过程的存储位置存储过程保存在 mysql.proc 表中:
12-- 查看存储过程信息SELECT * FROM mysql.proc WHERE db = 'database_name';
注意:直接操作 mysql.proc 表不推荐,应使用标准的SQL语句管理存储过程。
1.3 存储过程的优势1. 提高运行速度
预编译:存储过程在创建时编译,执行时直接运行
减少编译时间:避免每次执行SQL时重新编译
执行计划缓存:MySQL可以缓存存储过程的执行计划
性能对比:
12普通SQL:解析 → 编译 → 优化 → 执行存储过 ...
第429集数据库触发器
数据库触发器1. 触发器概述1.1 什么是触发器触发器(Trigger)是数据库中的一种特殊存储过程,它在满足特定条件时自动执行。触发器不是由程序调用,也不是由手工启动,而是由事件来触发、激活从而实现执行。
核心特性:
自动执行:满足条件时自动触发,无需手动调用
事件驱动:由数据库事件(INSERT、UPDATE、DELETE)触发
透明性:对应用程序透明,业务代码无需感知
数据完整性:在数据库层面保证数据一致性
1.2 触发器的执行机制执行流程1234567891011用户操作(INSERT/UPDATE/DELETE) ↓触发事件发生 ↓执行BEFORE触发器(如果存在) ↓执行实际的数据操作 ↓执行AFTER触发器(如果存在) ↓返回结果
触发时机
BEFORE:在数据操作之前执行
AFTER:在数据操作之后执行
1.3 触发器支持的事件触发器由表的增删改操作触发,不包括查询:
事件类型
说明
触发时机
INSERT
插入数据
执行INSERT语句时
UPDATE
更新数据
执行UPDATE语句时
DELETE
删除数据
...
第428集数据库索引操作
数据库索引操作1. 索引概述1.1 什么是索引索引(Index)是数据库中一种数据结构,它是对数据库表中一列或多列的值进行排序的一种结构。索引就好比一本书的目录,它会让你更快地找到内容。
核心概念:
索引是数据结构,不是数据本身
索引存储在磁盘上,占用存储空间
索引可以显著提高查询速度
索引需要维护,会影响写入性能
1.2 索引的类比理解书籍目录类比:
没有目录:需要逐页查找,耗时很长
有目录:直接定位到章节,快速找到内容
目录过多:如果一本书1000页,有500页是目录,效率反而低
目录占纸张:索引占磁盘空间
数据库索引同样如此:
索引不是越多越好
索引需要占用磁盘空间
索引需要维护成本
合理使用索引才能提升性能
1.3 索引的工作原理B-Tree索引结构(InnoDB默认)12345 [50] / \ [25] [75] / \ / \[10] [30] [60] [90]
查找过程:
从根节点开始比较
根据比较结果决定向左或向右查找
在叶子节点找到数据指针
通过指针访问实际 ...
第427集数据库视图操作
数据库视图操作视图概述什么是视图MySQL视图(View)是一个虚拟表,其内容由SELECT查询语句定义。视图与真实的表数据一致,但视图并不在数据库中以存储的数据值形式存在。
视图引用自定义查询表的字段,并且在引用视图时动态生成。对其所引用的基础表来说,MySQL视图的作用类似于筛选器。
视图的核心特性1. 数据来源灵活
定义视图的筛选可以来自当前或其它数据库的一个或多个表
可以基于其它视图创建新视图(视图嵌套)
支持复杂的多表关联查询
2. 查询限制少
视图查询没有任何限制
通过视图进行数据修改时的限制也很少(取决于视图类型)
3. 存储方式
视图是存储在数据库中的SQL查询语句
视图定义存储在数据字典中
不存储实际数据,每次查询时动态计算
视图的主要应用场景1. 安全原因视图可以隐藏一些敏感的信息,提供数据访问的安全层:
12345-- 示例:隐藏敏感字段CREATE VIEW user_public AS SELECT id, username, email, created_at FROM users;-- 隐藏了password、phone等敏感字段
2. 简化查询使 ...
第426集数据库基本操作
数据库基本操作1. 数据库连接方式1.1 本地连接使用mysql -u root -p可以连接数据库,但这只是本地连接数据库的方式。
123# 本地连接数据库[root@sql ~]# mysql -uroot -pEnter password:
1.2 远程连接在生产很多情况下都是连接网络中某一个主机上的数据库。
连接参数:
-P: 指定连接远程数据库端口
-h: 指定连接远程数据库地址
-u: 指定连接远程数据库账户
-p: 指定连接远程数据库密码
123456# 远程连接数据库[root@sql ~]# mysql -h192.168.56.11 -P3306 -uroot -pEnter password: # 或者在一行中指定密码(不推荐,密码会出现在命令历史中)[root@sql ~]# mysql -h192.168.56.11 -P3306 -uroot -p'password'
1.3 连接选项常用连接选项:
选项
说明
示例
-h
指定主机地址
-h192.168.56.11
-P
指定端口号
-P3306
-u
指 ...
第425集数据库安装管理
数据库安装管理1. YUM安装数据库MySQL Yum仓库提供了用于在Linux平台上安装MySQL服务器、客户端和其他组件的RPM包。
MySQL Yum安装下载地址: https://dev.mysql.com/downloads/repo/yum/
使用MySQL Yum仓库时,默认选择安装最新的MySQL版本。如果需要使用低版本请按如下操作。
1.1 安装MySQL仓库源12345# 下载并安装MySQL Yum仓库源[root@sql ~]# rpm -ivh https://dev.mysql.com/get/mysql80-community-release-el7-1.noarch.rpm# 验证仓库安装[root@sql ~]# yum repolist enabled | grep mysql
1.2 选择并启用适合当前平台的发行包查看所有MySQL发行版仓库12# 列出所有MySQL发行版仓库[root@sql ~]# yum repolist all | grep mysql
输出示例:
12345mysql-connectors-community/x86 ...
第424集数据库基础介绍
数据库基础介绍1. 数据库概述1.1 数据库定义数据库(Database)是按照数据结构来组织、存储和管理数据的仓库,是一个长期存储在计算机内的、有组织的、可共享的、统一管理的大量数据的集合。
数据库的核心价值:
数据持久化: 长期存储数据
数据共享: 多用户并发访问
数据一致性: 保证数据的准确性和完整性
数据独立性: 数据与应用程序分离
1.2 数据的存储方式数据存储经历了从简单到复杂、从低效到高效的发展过程。
1. 人工管理阶段特点:
使用Excel表格等简单工具
数据与程序紧密结合
数据无法共享
数据冗余度高
数据独立性差
应用场景:
个人数据管理
小型项目初期
临时数据存储
局限性:
数据量小
无法并发访问
数据安全性差
维护成本高
2. 文件系统阶段特点:
使用文件系统存储数据
数据与程序有一定分离
支持基本的文件操作
数据共享能力有限
应用场景:
小型应用系统
配置文件存储
日志文件管理
局限性:
数据冗余
数据不一致
数据独立性差
缺乏统一管理
3. 数据库系统阶段特点:
数据结构化
数据共享性高
数据独立性好
数据统一管理
支持并发控制
...
第423集网络安全等级保护测评-Linux篇
网络安全等级保护测评 - Linux篇1. 身份鉴别1.1 身份标识和鉴别测评要求: 应对登录的用户进行身份标识和鉴别,身份标识具有唯一性,身份鉴别信息具有复杂度要求并定期更换。
测评方法询问并验证管理员采用什么方法登录服务器(通过情况下都是用户名+口令),并记录口令的长度是否满足8位以及是否由大小写、字母、特殊符号组成,并定期更换。
检查步骤步骤1: 检查账户唯一性
12345# 查看/etc/passwd文件,检查是否有同名账户存在,各账户UID是否唯一cat /etc/passwd | awk -F: '{print $1, $3}' | sort -k2 -n# 检查重复UIDcat /etc/passwd | awk -F: '{print $3}' | sort -n | uniq -d
步骤2: 检查密码策略配置
12# 查看/etc/login.defs文件中的口令长度及更换周期cat /etc/login.defs | grep -E "PASS_MAX_DAYS|PASS_M ...
第422集集群架构-Rsync数据同步备份
集群架构 - Rsync数据同步备份1. Rsync基本概述1.1 Rsync简介Rsync是开源多功能同步工具,支持多种操作系统。
Rsync特点:
支持本地复制(优于scp、cp)与远程同步
支持全量备份、增量备份
基于C/S架构,默认监听tcp 873端口
Rsync官网: https://rsync.samba.org/
1.2 Rsync优点
支持增量备份: 第一次全量备份,第二次增量备份,边复制、边比较、边统计,传输效率很高
数据集中备份: 客户端可以推送数据至服务端,也可以从服务端获取数据,以客户端为参照物
保持文件属性: 符号链接、硬链接、权限、时间等
安全方式传输: rsync本身不对数据加密,使用ssh作为传输端口
指定排除文件: 排除无需同步的文件或目录
进程方式同步: rsync运行在C/S架构,通过进程方式传输文件或数据
1.3 Rsync缺点
大量小文件同步会比较慢: 需要比对较长时间,有可能会造成Rsync进程停止
解决思路: 将小文件进行打包,然后再同步,减少比对时间,传输效率更高
同步大文件会出现中断情况: 而且长时间同步会造成网络资源被耗尽
...
第421集集群架构-NFS网络文件系统
集群架构 - NFS网络文件系统1. NFS应用场景1.1 NFS简介NFS是Network File System的缩写,即网络文件系统。
主要功能是通过局域网络让不同的主机系统之间可以共享文件或目录。
NFS系统和Windows网络共享、网络驱动器类似,只不过Windows用于局域网,NFS用于企业集群架构中,如果是大型网站,会用到更复杂的分布式文件系统。
1.2 分布式文件系统小文件存储系统:
MooseFS: 分布式文件系统
FastDFS: 轻量级分布式文件系统
大文件存储系统:
GlusterFS: 分布式文件系统
HDFS: Hadoop分布式文件系统
1.3 NFS工作原理如果使用NFS客户端挂载的方式将NFS服务器端共享的数据目录挂载至NFS客户端本地系统中。从NFS客户端来看,NFS服务器端共享的目录就好像是客户端自己的磁盘分区或者目录一样,但实际上却是远端NFS服务端的目录。
1.4 集群共享存储需求下面通过图解展示集群需要共享存储服务的理由。
问题场景:
A用户传图片到WEB1服务器
B用户访问这张图片
请求分发到了WEB2
WEB2上没有这张图片
结 ...
