当前位置: 首页 > article >正文

针对MySql知识的回顾

MySql虽然是一个相对简单的关系型数据库,但也是一个最常用的数据库,也是一个非常经典的数据库,很多云产品也是基于MySql做了二开,从而变得非常强大,其中MySql最常用的是Innodb引擎,因为该引擎支持事务,行级锁等特性,从而使其非常适用于业务开发的场景。

MySql的知识体系其实很庞大,真要完全吃透其实非常复杂,而且很多知识点也容易忘记或者没理解透,但是,想要用好MySql就必须加强对它相关知识的记忆,其实很多人都或多或少见过这些知识点,甚至曾经也都记得,但是当一段时间过去,可能对这些知识点又产生了一层朦胧,本人亦如此,现在,将展开对此回顾:

在Innodb中:

当在RC和RR的isolation下,凡是SELECT xx FROM xx (WHERE xx)是快照读,不加任何锁,而只要是添加S锁或者X锁,都会产生当前读,凡是不生产锁的就是快照读,产生的锁的都是当前读;

RU/SERIALIZE的isolution下全部使用当前读,其中串行化级别下的普通SELECT都会默认在尾部追加S锁以此来实现当前读。

RC 和 RR 隔离级别都是由 MVCC 实现,区别在于:

  • RC 隔离级别时,read-view 是每次执行 select 语句时都生成一个;
  • RR 隔离级别时,read-view 是在第一次执行 select 语句时生成一个。

需要注意的是...IN SHARE MODE、...FOR UPDATE、INSERT、UPDATE、DELETE等触发锁的行为一定要走索引,不然会导致锁表,其实范围查询时若命中纪录为空,这种情况即使走索引列也会认为未走索引而锁表


http://www.kler.cn/a/148686.html

相关文章:

  • see的本质是什么?
  • 博物馆实景复刻:开启沉浸式文化体验的新篇章
  • Git回到某个分支的某次提交
  • 【快捷入门笔记】mysql基本操作大全-SQL表
  • STM32中,不进行printf改写通过函数达到同款效果
  • Oracle 单机及 RAC 环境 db_files 参数修改
  • nodejs 如何将 Buffer 数据转为 String
  • 条形码格式
  • 位运算算法【1】
  • UI自动化的基本知识
  • Hive进阶函数:SPACE() 一行炸裂指定行
  • 【栈和队列(1)(逆波兰表达式)】
  • Ps:子路径的上下排列以及对齐与分布
  • 【开发实践】使用POI实现导出带有复杂表头的的excel文件
  • 璞华大数据产品入选中国信通院“铸基计划”
  • 【开源】基于Vue+SpringBoot的学校热点新闻推送系统
  • 梦极光(ez_re???)
  • MYSQL基础知识之【LIKE子句的使用 ,NULL值的处理,空值的处理】
  • ArrayList和顺序表
  • 服务器中深度学习环境的配置
  • 使用OSS搭建私有云内网yum仓库的方法
  • 盖茨表示GPT-5不会比GPT-4有太大改进;Intro to Large Language Models
  • 羽隔已就之图像处理之BP神经网络入门
  • C++ day36 贪心算法 无重叠区间 划分字母区间 合并区间
  • 计算机网络高频面试八股文
  • 解决Hadoop DataNode ‘Incompatible clusterIDs‘报错