当前课程知识点:数据库技术应用 >  教学情境五、银行存取款机数据库安全性 >  模块3、MYSQL数据库的锁机制 >  MYSQL数据库的锁机制

返回《数据库技术应用》慕课在线视频课程列表

MYSQL数据库的锁机制在线视频

下一节:模块4、MYSQL备份和恢复

返回《数据库技术应用》慕课在线视频列表

MYSQL数据库的锁机制课程教案、知识点、字幕

同学们好

今天我给大家讲解的是

MySQL中一个非常重要机制

它是解决事务并发操作的重要手段

它就是锁机制

我们将以BankDB数据库为事例数据库

给大家介绍锁的知识点

请大家打起精神

课程即将开始

首先看一下应用场景

数据库的锁是一种软件机制

用来控制防止某个用户

在已经占有某种资源时

其他用户做出影响本用户数据操作或

导致数据非完整性和非一致性问题发生的手段

任务分析

当用户对数据库并发访问时

为了确保事务完整性和数据库一致性

需要使用锁定

以防止用户读取正在由其他用户更改的数据

并防止多个用户同时更改相同数据

如果不使用锁定

则数据库中的数据可能在逻辑上不正确

并且对数据的查询可能会产生意想不到的结果

具体地说

锁定可以防止丢失更新、脏读、不可重复读和幻读

本课目标

了解锁的概述

了解MySQL中的锁和数据库引擎

InnoDB和MyISAM支持表级锁

InnoDB事务实现的行级锁

知识技能

相对于其他数据库而言

MySQL锁的机制比较简单

最显著的特点是不同的存储引擎

支持不同的锁机制

MyISAM和MEMORY存储引擎采用表级锁

DBD存储引擎采用的是页面锁和表级锁

InnoDB支持行级锁、表级锁、

默认情况采用行级锁

三种粒度锁的特性

表级锁开销小,加锁快、不会出现死锁

锁定力度大,发生冲突的概率高 并发度低

行级锁开销大 加锁慢会出现死锁

锁定力度小发生锁冲突的概率最低并发度高

页面锁开销和加锁时间介于表锁和行锁之间

会出现死锁

锁定力度介于表和行级锁之间

并发度一般

MySQL表级锁的锁模试

1、表共享锁2、表独占锁

任务实施

表级锁

给BankDB数据库中的userinfo表

和cardinfo表添加读锁

具体的添加方式

大家可以看一下以下两条语句

如果加的read锁

只能读取不能够更改数据

并且只能访问加锁的表

解锁表的语句用Unlock后面加 tables就可以

添加表级写锁

给userinfo表添加写锁

具体的语法

Lock tables userinfo write 来添加

MySQL的InnoDB引擎行的锁

共享锁

InnoDB引擎

共享锁用于所有的只读数据操作

独占锁为修改数据而保留

它所锁定的资源

其他事务不能读取也不能修改

意向共享锁

意向独占锁

意向锁是InnoDB内部使用的

这两种意向锁都是表锁

比如事务打算给行加共享锁

现在表上添加IS锁

锁与SQL语句

对于update、delete和insert语句

InnoDB会自动涉及数据集加排他锁

对于select语句与InnoDB

不加任何锁可以显示加锁

Select * from userinfo

where CoustomerID=‘1001’for update

Select * from userinfo

where CoustomerID=‘1001’lock in share mode

Lock in share mode 是共享锁

如果加密记录后进行更改使用for update

任务扩展

在员工系统中,把表加上表级锁

好谢谢大家的聆听

数据库技术应用课程列表:

学习情境一、银行存取款机数据库创建与管理

-模块1、数据库的基础知识

--1.1.1数据库设计-数据库的基本概念

--1.1.2数据管理的发展和数据库体系结构

--数据库的基础知识

-模块2、MYSQL介绍与安装

--MYSQL介绍与安装

--MYSQL介绍与安装

-模块3、银行存取款机数据库的创建与维护

--1.3数据库的创建与维护

--银行存取款机数据库的创建与维护

-模块4、银行存取款机数据库的设计

--1.4.1数据库的概念模型设计

--1.4.2数据库的数据模型设计

--1.4.3数据库的关系规范化

--银行存取款机数据库的设计

学习情境二、创建和管理银行存取款机数据表

-模块1、表的创建

--2.1表的创建

--任务实施:银行存取款机表的创建

--表的创建

-模块2、表的管理

--2.2表的管理

--任务实施:银行存取款机表的管理

--表的管理

-模块3、索引

--2.3索引

--任务实施:银行存取款机索引

--索引

-实践小课堂:宠物电商管理平台数据库和表的创建

--实践小课堂:宠物电商管理平台数据库和表的创建

学习情境三、银行存取款机数据操纵

-模块1、银行存取款机数据插入、修改和删除

--3.1.1数据插入

--任务实施:银行存取款机数据插入

--3.1.2数据修改和删除

--任务实施:银行存取款机数据修改和删除

--实践小课堂:宠物电商管理平台数据插入

--银行存取款机数据插入、修改和删除

-模块2、银行存取款机简单查询

--3.2.1简单查询

--任务实施:银行存取款机简单查询

--实践小课堂:宠物电商管理平台简单查询

--3.2.2统计查询

--任务实施:银行存取款机统计查询

--实践小课堂:宠物电商管理平台条件查询

--银行存取款机简单查询和统计查询

-模块3、银行存取款机连接查询

--3.3连接查询

--任务实施:银行存取款机连接查询

--银行存取款机连接查询

-模块4、银行存取款机子查询

--3.4子查询

--任务实施:银行存取款机子查询

--实践小课堂:宠物电商管理平台多表查询

--银行存取款机子查询

-模块5、银行存取款机分类汇总与排序

--3.5分类汇总与排序

--任务实施:银行存取款机分类汇总与排序

--实践小课堂:宠物电商管理平台分类汇总和排序

--银行存取款机分类汇总与排序

-模块6、银行存取款机视图

--3.6.1视图的创建与管理

--任务实施:银行存取款机视图的创建与管理

--3.6.2视图的更新

--任务实施:银行存取款机视图的更新

--实践小课堂:宠物电商管理平台视图

--银行存取款机视图

学习情境四、银行存取款机数据库编程

-模块1、银行存取款机存储过程

--4.1.1创建和执行存储过程

--任务实施:银行存取款机创建和执行存储过程

--实践小课堂:宠物电商管理平台存储过程

--4.1.2事务

--任务实施:银行存取款机事务

--实践小课堂:宠物电商管理平台存储函数

--银行存取款机存储过程

-模块2、银行存取款机触发器

--4.2.1INSERT触发器

--任务实施:银行存取款机INSERT触发器

--实践小课堂:宠物电商管理平台INSERT触发器

--4.2.2UPDATE触发器

--任务实施:银行存取款机UPDATE触发器

--实践小课堂:宠物电商管理平台UPDATE触发器

--4.2.3DELETE触发器

--任务实施:银行存取款机DELETE触发器

--实践小课堂:宠物电商管理平台DELETE触发器

--银行存取款机触发器

教学情境五、银行存取款机数据库安全性

-模块1、MYSQL用户管理

--模块1、MYSQL用户管理

--MYSQL用户管理

-模块2、MYSQL权限管理

--模块2、MYSQL权限管理

--MYSQL权限管理

-模块3、MYSQL数据库的锁机制

--MYSQL数据库的锁机制

--MYSQL数据库的锁机制

-模块4、MYSQL备份和恢复

--模块4、MYSQL备份和恢复

--MYSQL备份和恢复

MYSQL数据库的锁机制笔记与讨论

也许你还感兴趣的课程:

© 柠檬大学-慕课导航 课程版权归原始院校所有,
本网站仅通过互联网进行慕课课程索引,不提供在线课程学习和视频,请同学们点击报名到课程提供网站进行学习。