掌握MySQL的事务处理方法

本文围绕MySQL展开,介绍了事务处理方法,强调事务要么全成功要么全失败,还阐述了ACID原则及隔离级别;讲解了视图的使用,其可降低查询复杂度;说明了索引的创建,能提升查询性能;最后介绍了数据库的备份和恢复方法,包括命令操作等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1–【1.掌握MySQL的事务处理方法***】**
业务(例如:请假,报销,办卡,入学,登录,注册)
(一套固定的顺序流程)
在这里插入图片描述
在这里插入图片描述
– 1.2 事务的概述
在这里插入图片描述
在这里插入图片描述
事务:一系列操作要么都执行成功!要么都失败!
RDB安全、事务支持好 NoSQL事务一般并不是太强(Redis是假事务)
#MySQL:存储引擎 INNODB(默认、高频采用) 、 BDB才支持事务
#MyISAM也是常用存储引擎 但是它在事务等方面不支持 它的查询性能比较强 也支持全文索引
#其实在使用了支持事务的引擎之后,事务就已经在使用了!因为MySQL中默认自动提交事务!
[2.理解MySQL的ACID原则(事务的特点)<面试题>]*
四大特性:原子性、一致性、隔离性、持久性
原子性:(在化学上讲究原子为最小单位 不可再分) 事务是不可分割!要么都成功要么都失败!
一致性:事务执行前和事务执行后数据总量不变! 例如转账 持久性:事务在执行完毕之后必须能够将数据持久保存到数据库中!
隔离性:多个事务之间应该彼此独立,不受影响。
事务并发引发的问题可能有:脏读、不可重复读、幻读/虚读
脏读:一个事务读取到了另一个事务未提交的数据!(基本不允许,因为事务有可能回滚)
不可重复读:一个事务在执行期间读取了多次内容,结果不一样。主要针对另一个事务对同样的内容进行了修改操作(UPDATE)
幻读/虚读:一个事务在执行全表性操作时,另一个事务进行了插入操作,那么第一个事务就会发现还有未执行完的内容。(INSERT)
(MySQL)四大隔离级别:读未提交、读已提交 、 可重复读 、串行化
读未提交:任何事务并发问题都无法解决!(基本不采用)
读已提交:能解决脏读问题!(Oracle数据库默认)
可重复读:可以解决脏读和不可重复读问题!(MySQL默认) 串行化:最严格的隔离级别!可以解决所有的并发问题!(基本不采用)
- [3.了解视图的使用]
视图:它是一种[虚拟表] 可以用来降低查询复杂度!也可以适用于不同群体对数据的不同要求!
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
SELECT
stu.stuName,sub.subjectName,r.result,r.examDate
FROM
result r,student stu,subject sub
WHERE
r.stuId = stu.stuId AND r.subjectId = sub.subjectId
ORDER BY
r.result DESC , r.examDate DESC;
视图创建
CREATE VIEW stu_result_list AS
SELECT
stu.stuName,sub.subjectName,r.result,r.examDate
FROM
result r,student stu,subject sub
WHERE
r.stuId = stu.stuId AND r.subjectId = sub.subjectId
ORDER BY
r.result DESC , r.examDate DESC;
在这里插入图片描述
视图的使用【视图是一张虚拟表,你对他的改动会最终影响到真实数据物理表!】
视图的用途:*****筛选表中的行,防止未经许可的用户访问敏感数据,降低数据库的复杂程度(查询一次并建立好视图,那么该查询下次就不需要在写一大长串SQL语句来进行查找了,)将多个物理数据库抽象为一个逻辑数据库(统一整理为了一个符合逻辑性的数据表和库)。
在这里插入图片描述
SELECT * FROM stu_result_list;
视图删除
DROP VIEW stu_result_list;
视图注意事项:
在这里插入图片描述
#1.视图仅仅作为查询使用即可!不要进行修改等操作!
2.视图也可以进行嵌套使用
#3.视图的数据是来自于对应的物理表!
在这里插入图片描述
查看所有视图
在这里插入图片描述
[4.掌握数据库索引的创建
]

索引:提升查询性能! 将一个列或者一组列进行相关组合排序使用。
#原理:类似于字典前的目录页
索引的分类:普通索引、唯一索引、主键索引、复合索引、全文索引、空间索引
#普通索引:提升查询性能
#唯一索引:除了提升查询性能 还可以保证列/字段值唯一
#主键索引:除了提升查询性能 还可以保证主键的特点 非空且唯一
复合索引:可以将多个字段列组合提升查询性能
select name,pwd from xx | select xx from where name = xx and pwd =xxx
全文索引:它只能在MyISAM存储引擎中使用 提升大数据量情况下对文本查找的性能
在这里插入图片描述
创建一个普通索引
CREATE INDEX index_stu_name ON student(stuName);
创建外键和主键和唯一键都会产生对应的索引
删除索引
DROP INDEX index_stu_name ON student;
查看索引列表
SHOW INDEX FROM student;
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
[5.了解MySQL数据库的备份和恢复]
*
备份数据库:mysqldump [参数选项] -u用户名 -p -h主机地址 要备份的数据库名 [要备份的数据表列表] > 输出的地址
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
参数选项:
在这里插入图片描述
-add-drop-table 表示在创建表语句前都添加drop table语句 可以通过-skip-add…取消
–add-locks 表示在插入数据前后加上锁表和解锁语句 可以防止插入出错!
-t (-table 减去table) 导出数据时不添加数据结构创建的语句 CREATE TABLE
-c (complete完整的) 可以帮助我们在导出数据时 添加语句可以加上字段列表
-d (-data 减去data) 导出时 只要表结构 不要数据

恢复数据库:mysql -u用户名 -p -h主机地址 要恢复到的数据库名 < 数据脚本地址
在登录mysql服务器之后可以使用source命令来恢复数据库 source 数据脚本文件地址;(切换到指定数据库)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
4.3 使用source命令恢复数据库
在这里插入图片描述
4.3 通过复制文件实现数据库备份和恢复
在这里插入图片描述
4.4 表数据导出到文本文件
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
4.5 文本文件导入到数据库
在这里插入图片描述

资源下载链接为: https://pan.quark.cn/s/22ca96b7bd39 在当今的软件开发领域,自动化构建与发布是提升开发效率和项目质量的关键环节。Jenkins Pipeline作为一种强大的自动化工具,能够有效助力Java项目的快速构建、测试及部署。本文将详细介绍如何利用Jenkins Pipeline实现Java项目的自动化构建与发布。 Jenkins Pipeline简介 Jenkins Pipeline是运行在Jenkins上的一套工作流框架,它将原本分散在单个或多个节点上独立运行的任务串联起来,实现复杂流程的编排与可视化。它是Jenkins 2.X的核心特性之一,推动了Jenkins从持续集成(CI)向持续交付(CD)及DevOps的转变。 创建Pipeline项目 要使用Jenkins Pipeline自动化构建发布Java项目,首先需要创建Pipeline项目。具体步骤如下: 登录Jenkins,点击“新建项”,选择“Pipeline”。 输入项目名称和描述,点击“确定”。 在Pipeline脚本中定义项目字典、发版脚本和预发布脚本。 编写Pipeline脚本 Pipeline脚本是Jenkins Pipeline的核心,用于定义自动化构建和发布的流程。以下是一个简单的Pipeline脚本示例: 在上述脚本中,定义了四个阶段:Checkout、Build、Push package和Deploy/Rollback。每个阶段都可以根据实际需求进行配置和调整。 通过Jenkins Pipeline自动化构建发布Java项目,可以显著提升开发效率和项目质量。借助Pipeline,我们能够轻松实现自动化构建、测试和部署,从而提高项目的整体质量和可靠性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值