澳门十大赌场最新排名 > 澳门十大赌场 > 存储过程和触发器的应用,数据库锁的分类及死

原标题:存储过程和触发器的应用,数据库锁的分类及死

浏览次数:147 时间:2019-09-25

一:分类

实验案例一:验证索引的作用

1 下载并安装MySQL官方的 Yum Repository

  //下载安装Yum Repository

  wget -i -c

  //yum安装      

  yum -y install mysql57-community-release-el7-10.noarch.rpm

  //开始安装MySQL服务器

  yum -y install mysql-community-server

1.乐观锁:用数据版本记录机制实现。
为数据增加一个版本表示,一般是数据库增加一个version字段。读取数据时,把version字段一起独处,每更新一次,version 1.
提交时,提交版本必须大于当前版本才能执行更新。

1、首先创建一个数据量大的表,名称为“学生表”,分别有三列,学号,姓名和班级,如下图所示,学号为自动编号,班级为默认值“一班”。

2 MySQL数据库设置

  //首先启动MySQL

  systemctl start mysqld.service

  //查看MySQL运行状态

  systemctl status mysqld.service

  结果成功的话如图

  图片 1

  //此时MySQL已经开始正常运行,不过要想进入MySQL还得先找出此时root用户的密码,通过如下命令可以在日志文件中找出密码

  grep "password" /var/log/mysqld.log

  结果:最后面的为初始密码

  图片 2

  //进入数据库

  mysql -uroot -p
  
  //此时不能做任何事情,需要先修改密码

  ALTER USER 'root'@'localhost' IDENTIFIED BY '你想的密码';

  //这样设置密码需要设置复杂一点的密码,否则会报错,若想设置简单的密码如123456,可以如下配置
  
  set global validate_password_policy=0;

  set global validate_password_length=1;

  //之后再设置密码
  

  ALTER USER 'root'@'localhost' IDENTIFIED BY '你想的密码';

  //但此时还有一个问题,就是因为安装了Yum Repository,以后每次yum操作都会自动更新,需要把这个卸载掉:

  //先退出mysql

  quit;

  yum -y remove mysql57-community-release-el7-10.noarch

 

  

 

 

   

 

 

  

2.悲观锁,在操作数据时,认为此操作会出现数据冲突,所以在进行每次操作时都要通过获取锁才能进行对相同数据的操作。

图片 3

3.悲观锁设计到的另外两个锁概念:共享锁和排他锁都是悲观锁的一种实现。

2、向表中插入大量数据,数据越多,验证索引的效果越好。

4.共享锁(读锁),读取操作创建的额锁。其他用户可以并发读取数据,但不能对其进行修改,直到已释放所有共享锁

使用语句完成:While 1>0  Insert into 学生表(姓名)  values(‘于美丽’)

如果事务T对数据a加共享锁,则其他事务不能再加排它锁。获得共享锁的事务只能读数据

上面语句是一个死循环,除非强制结束,如果1大于0就会一直向表中插入姓名

5.排它锁(写锁),加锁之后,可以读也可以写,其他时候不能再加锁。

如下图所示:

6.行锁,给某一行,也就是某一条记录加锁。基于索引的,所以如果sql语句用不到索引也就用不到行锁,只会用到表锁。

图片 4

7.表锁。innodb引擎在用不到索引也就是用不到行锁的时候,行锁会变成表锁。

等待5分钟左右,打开表的属性,查看表的行数,当前为1032363,如下图所示:

8.死锁,两个或两个以上进程,因争夺资源而造成一种互相等待的现象。

图片 5

二、解决方法

3、 使用语句查询第900000行的数据,Select * from 学生表 Where 学号=900000

  1.查询是否锁表

图片 6

show OPEN TABLES where In_use > 0;

4、打开“sql server profiler ”工具进行跟踪,如下图所示:

  2.查询所有进程

打开“sql server profiler ”工具查看跟踪的信息,发现查询时间很长,cpu工作了265毫秒,reads:读了8649次,writes:写了10次,duration:总计花费2336毫秒完成查询。

show processlist

图片 7

  3.杀死进程

为了下面分析文件更准确,多执行几次Select* from 学生表 Where 学号=900000

本文由澳门十大赌场最新排名发布于澳门十大赌场,转载请注明出处:存储过程和触发器的应用,数据库锁的分类及死

关键词: bbin娱乐平台

上一篇:没有了

下一篇:没有了