`

mysql 外键锁机制

 
阅读更多
在mysql的多个存储引擎中,innodb支持外键,但是由于外键,也会对innodb表增加锁定机制;

所有的外键相关的操作都在数据更改时,比如检查数据完整性、增加锁定等;

假设一个表为test_tab,一个表为child,test_tab通过id和child的test_tab_id相连接;在一个session中set autocommit=0,执行对test_tab或child的操作,在另一个
session执行对child或test_tab的操作,从而得出以下结论:

一、对父表的操作

1:insert to test_tab,新插入行的id值为XXX
child会锁外键值为XXX的行,不会锁其他行

2:update test_tab,原id为XXX,现id为YYY
child会锁外键值为XXX,YYY的行,不会锁其他行

3:delete from test_tab,删除行的id为XXX
child会锁外键值为XXX,不会锁其他行

二、对子表的操作

1:insert to child,插入行的外键值为XXX
test_tab会锁值XXX的行,不会锁其他行

2:update child,更新行的外键值原为XXX,现为YYY
test_tab会锁XXX,YYY行,但要注意:存在间隔锁,也会锁其他行(XXX,YYY之间的位置)

3:delete from child,删除行的外键值为XXX
test_tab会锁XXX的行,但要注意:存在间隔锁,也会锁其他行(XXX-1的位置)

分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    mysql外键的添加与删除参考.pdf

    InnoDB 是 MySQL 中的一种存储引擎,它支持事务、行级锁、外键约束等功能。InnoDB 存储引擎是 MySQL 中的默认存储引擎,它提供了高性能和高可靠性的存储服务。 外键约束的好处 ------------- 外键约束可以确保数据...

    MySQL中利用外键实现级联删除、更新

    只有 InnoDB 引擎才允许使用外键,这是因为 InnoDB 引擎支持事务和锁机制,能够确保数据的一致性和完整性。 在创建外键时,要求父表必须有对应的索引,子表在创建外键时也会自动创建对应的索引。在创建索引时,可以...

    mysql源码(mysql-8.2.0.tar.gz)

    5. 锁机制:MySQL中的锁机制包括表级锁、行级锁、页级锁等,通过源码可以深入理解这些锁的实现细节和应用场景。 6. Replication(复制):MySQL的主从复制功能允许数据在多个服务器之间同步,源码中可以研究如何...

    mysql面试知识点及大厂面试题

    作为一名 IT 行业大师,我将从存储引擎、锁机制、事务等方面详细剖析 MySQL 的知识点,并总结出大厂面试题的要点。 一、存储引擎 MySQL 提供了多种存储引擎,包括 MyISAM、InnoDB、MEMORY 等。其中,MyISAM 和 ...

    MySQL学习资料PDF

    这本书深入解析了InnoDB的工作原理,包括表空间、页、索引结构、锁机制、事务处理和恢复机制等。通过阅读这本书,读者可以更好地理解InnoDB在处理并发操作和保证数据一致性方面的机制,从而更有效地设计和管理数据库...

    mysql高级优化查询

    通过上述对 MySQL 高级优化查询的深入解析,我们不仅了解了查询缓存的原理及其工作流程,还探讨了 MySQL 的内部机制,包括存储引擎、锁机制、索引管理和查询优化器等关键组件。此外,还介绍了一些额外的优化策略,如...

    MySQL_2.pdf

    其内容主要包括:MySQL的基本架构与存储引擎、表的设计与操作、索引的使用、查询的执行优化、事务与锁机制、性能调优、复制和高可用架构等方面。 具体知识点分析如下: 1. MySQL存储引擎:文件内容提到了使用...

    面试八股文,主要是一些面试题目

    MySQL锁机制是指MySQL数据库系统中的一种机制,用于控制并发访问的数据的一致性。MySQL锁机制有两种:表锁和行锁。表锁是指对整个表的锁定,而行锁是指对单个记录的锁定。在MySQL中,锁机制可以通过LOCK TABLE和...

    MySQL数据库考试练习题 mysql试题集 共28页.pdf

    3. **锁机制**:熟悉不同的锁定级别(如读锁、写锁)及其对并发控制的影响。 ### 五、视图与存储过程 1. **视图的创建与使用**:了解视图的作用及其创建和使用方法。 2. **存储过程的编写**:掌握存储过程的语法...

    高性能mysql源码.rar

    此外,还有锁机制,如行级锁、表级锁、读写锁等。 5. **内存管理**:MySQL使用缓冲池来缓存数据和索引,以减少磁盘I/O。优化内存管理对提高性能至关重要。 6. **复制与高可用**:MySQL的复制功能使得数据可以在多...

    携程 姜宇祥-MySQL源码开发实践

    4. **并发控制与锁机制**:分析MySQL的并发控制机制,如多版本并发控制(MVCC)、行级锁定、表锁定等,以及它们在不同隔离级别下的表现。 5. **存储与恢复机制**:讲解数据的物理存储格式,如记录格式、页管理,...

    Mysql面试题详解(个人整理)

    面试中,MySQL的知识点涵盖了从基础到高级的各种主题,包括但不限于数据库引擎的选择、事务处理、锁机制、索引优化、存储结构以及数据恢复策略等。以下是对这些重要知识点的详细解释: 1. **MySQL常用引擎**: - *...

    阿里大牛何sir 深入MySQL加锁处理分析

    在深入分析MySQL加锁处理之前,首先需要了解MySQL数据库的基本架构以及锁机制的相关概念。MySQL是一个支持插件式存储引擎的数据库系统,其中InnoDB存储引擎因其支持事务处理和外键约束而被广泛使用。本文将重点讨论...

    Mysql OCP 5.6答案最新修正版题库

    MySQL OCP 5.6答案最新修正版题库 ...本资源旨在帮助用户更好地理解 MySQL 的高可用性、存储引擎、性能优化、查询优化、信息模式、锁机制、 MySQL 配置等知识点,为 MySQL OCP 5.6 认证考试做好准备。

    mysql5.6安装包 mysql5.6官网下载的

    - **数据恢复机制**:增强了崩溃恢复机制,即使在系统故障的情况下也能保证数据的一致性和完整性。 ### MySQL 5.6的安装步骤 #### Windows平台安装MySQL 5.6 1. **下载安装包**:首先从MySQL官方网站或可靠的第三...

    MySQL 62 道面试题及答案.docx

    本文档将对 MySQL 的一些常见面试题进行详解,涵盖 MySQL 的锁机制、表格类型、存储引擎、事务隔离级别、数据类型、索引、时间戳等方面。 MySQL 锁机制 MySQL 中有三种锁机制:表级锁、行级锁和页面锁。表级锁开销...

    深入理解MySQL核心技术.pdf

    事务的四种隔离级别(读未提交、读已提交、可重复读、串行化)和锁机制(共享锁、排他锁、行级锁、表级锁)是解决并发问题的关键。 存储引擎是MySQL的另一大特色,InnoDB是默认且最常用的存储引擎,支持事务处理和...

Global site tag (gtag.js) - Google Analytics