问题:请讲下在mysql中的锁

分析:该问题主要考察对中锁的掌握,主要考察的是读、写锁、行锁、间隙锁、next-key,其他还有表锁、意向锁

回答要点:

主要从以下几点去考虑,

1、mysql中的锁有哪些?

2、每种锁的使用场景?

mysql中的锁主要有读写锁、行锁、间隙锁、next-key

读锁

读锁,又叫共享锁,简称S锁,用在读操作上,事务A对数据加上了S锁,那么事务A只能进行读操作,其他事务包括A不能再对数据加X锁,但是可以加S锁;

例,select  ... in share mode

写锁

写锁,又叫排他锁,简称X锁,用在写操作上,事务A对数据加了X锁,那么事务A可以对数据进行读取和更新操作,其他线程不能对数据加S锁或X锁,也就是说X锁是排他的,这里的排他是其他的任何锁;

例,select .... for update

行锁

在mysql中读写锁都是行锁,通俗点讲就是锁住的是数据行,这点区别于myIsam的表锁,锁住整个表。innodb下的行锁是通过锁住索引上的索引项来实现的,如果没有索引则锁住每行隐藏的ID

间隙锁

间隙锁,顾名思义,就是锁住的一个范围,间隙锁也是行锁的一种,所以锁定的也是索引项中间的间隙;

next-key锁

next-key就是行锁+间隙锁,也就是锁住记录和它前面的间隙,例,select * from t where id<=7 id的值有1 2 7则(2,7]这就是一个next-key

mysql这种行锁的特点意味着如果查询条件中不走索引,那么innodb将对所有的记录加锁,实际效果跟锁表是一样的(不是表锁)

读写锁主要用在事务的隔离级别上,通过设置读写锁可以实现数据的隔离;

next-key则是用在隔离级别为可重复读下,用来解决幻读;

java面试一日一题:讲下mysql中的锁的更多相关文章

  1. java面试一日一题:讲下mysql中的undolog

    问题:请讲下mysql中undo log的作用 分析:mysql中有很多日志,例,bin log undo log redo log,要弄清楚这些日志的作用,就要了解这些日志出现的背景及要解决的问题: ...

  2. java面试一日一题:讲下mysql中的索引

    问题:请讲下mysql中的索引 分析:mysql中有很多索引,要对对这些索引有所掌握,还要弄清楚每种索引的本质? 回答要点: 主要从以下几点去考虑 1.索引的本质是什么 2.mysql的索引分类: 3 ...

  3. java面试一日一题:讲下在什么情况下会发生类加载

    问题:请讲下在什么情况下会发生类加载? 分析:该问题主要考察对java中类加载的知识,什么是类加载,为什么会发生类加载,什么情况下发生类加载? 回答要点: 主要从以下几点去考虑 1.什么是类加载: 2 ...

  4. java面试一日一题:mysql中常用的存储引擎有哪些?

    问题:请讲下mysql中常用的引擎有哪些? 分析:该问题主要考察对mysql存储引擎的理解,及区别是什么? 回答要点: 主要从以下几点去考虑, 1.mysql的存储引擎的基本概念? 2.mysql中常 ...

  5. java面试一日一题:mysql中的自增主键

    问题:请讲下mysql中的自增主键 分析:该问题主要考察对mysql中自增主键的掌握,使用场景及如何设置 回答要点: 主要从以下几点去考虑 1.什么自增主键 2.使用场景是什么: 3.innodb_a ...

  6. java面试一日一题:java中垃圾回收算法有哪些

    问题:请讲下在java中有哪些垃圾回收算法 分析:该问题主要考察对java中垃圾回收的算法以及使用场景 回答要点: 主要从以下几点去考虑, 1.GC回收算法有哪些 2.每种算法的使用场景 3.基于垃圾 ...

  7. java面试一日一题:java中的垃圾回收器

    问题:请讲下java中垃圾回收器有哪些? 分析:该问题主要考察hotspot虚拟机下实现的垃圾回收器 回答要点: 主要从以下几点去考虑, 1.垃圾回收器的种类 2.每种垃圾回收器的着重点是什么 前边的 ...

  8. java面试一日一题:binlog undolog redolog的区别

    问题:请讲下mysql中binlog.undolog.redolog三种日志的区别 分析:mysql中这三种日志很常见,也是面试中涉及比较多的方面,要理解清楚这三种日志的定位及区别: 回答要点: 主要 ...

  9. java面试一日一题:请讲下对mysql的理解

    问题:请讲下对mysql的理解 分析:该问题主要考察对mysql的理解,基本概念及sql的执行流程 回答要点: 主要从以下几点去考虑, 1.mysql的整体架构? 2.mysql中每一个组件的作用? ...

  10. java面试一日一题:mysql事务是如何实现的

    问题:请讲下mysql的事务是如何实现的 分析:该问题主要考察对事务的理解及实现方式: 回答要点: 主要从以下几点去考虑, 1.对事务的概念的理解? 2.事务的实现方式? 讲到mysql的事务,很快可 ...

随机推荐

  1. 01-布局扩展-BFC完成圣杯布局

    <!DOCTYPE html>   <html lang="en">   <head>   <meta charset="UTF ...

  2. linux系统下,jdk的安装和配置教程,以jdk-8u311为例

    1.官方下载 下载地址:https://www.oracle.com/ 本文以jdk8为例, 1)下载地址:https://www.oracle.com/java/technologies/downl ...

  3. .NET5 ASP.NET CORE 发布到IIS 文件无法替换

    由于默认是:进程内托管.要在IIS里停止网站,才能替换文件. 建议解决方案是:进程外(out-of-process)托管 记事本修改项目的  .csproj 文件(或在VS上,选中web项目,右键-编 ...

  4. node.js常用命令总结

    Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行时环境,用于构建快速.可扩展的网络应用程序.它使用事件驱动.非阻塞 I/O 模型,使其非常适合构建数据密集型的实时应用 ...

  5. 在js、vue中使用方法调用a标签

    <el-button type="primary" style="width:130px" @click="shout"> &l ...

  6. Golang基于Mysql分布式锁实现集群主备

    背景 集群中如果需要主备,可以基于Redis.zk的分布式锁等实现,本文将介绍如何利用Mysql分布式锁进行实现. 原理 数据库中包含数据字段(此处为Master的主机名).版本号和上一次更新时间. ...

  7. Atcoder Beginner Contest 321 G - Electric Circuit 题解 - 状压dp | 指定最低位

    为了更好的阅读体验,请点击这里 题目链接:G - Electric Circuit 看到了 \(N\) 的数据范围,因此是显然的状压 dp. 不妨设 \(f_S\) 为仅使用 \(S\) 集合中的所有 ...

  8. 关于kubesphere集群calico网络组件报错的修复

    最近公司的项目用到了Kubesphere,于是自己先在虚拟机上测试了一番,遇到了很多的问题,现将遇到的有关calico的问题记录一下 上一篇介绍了如何离线安装kubesphere v3.0,安装之后我 ...

  9. ABP框架开发实例教程-获取前端样式和脚本

    1.运行生成的ABP框架,设置WEB.MVC项目为启动项目,点击开始运行,界面如下,样式和脚本文件不存在,所以导致界面无法正常显示,这个我研究ABP遇到的第二个坑,第一个坑是生成数据库. 2.为什么没 ...

  10. aach64架构 ubuntu20 桌面版 编译安装ffmpeg难点总结

    [编译安装x264] 这一步基本上没有难点 git clone https://gitee.com/mirrors/x264.git ./configure --enable-shared --ena ...