`
l4432848
  • 浏览: 255187 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

-mysql-锁

    博客分类:
  • java
阅读更多

声明:本栏目所使用的素材都是凯哥学堂VIP学员所写,学员有权匿名,对文章有最终解释权;凯哥学堂旨在促进VIP学员互相学习的基础上公开笔记。

表级锁:

表级锁分分两种
一种只读
一种是只写
解锁语句是 unlocak tables;
只要解锁
这个用户锁定的所有表都会被解除

只读锁:

Lock tables 表名 read;
如果你锁定的 是只读模式的话
那所有的用户都是只读模式
谁都不能够对这张表修改了 其他用户要修改会卡住
自己修改会报错!
解除锁或这你这个用户直接退出
退出锁就默认解除了!

image

image

或者锁表的用户执行 unlock tables; 也可以的!

只写锁:

Lock tables 表名 write;
入下图实验
A用户设置只写模式
自己可以读也可以写
但是别的用户不能写也不能读

image

image

解锁两种办法
自己用户直接退出或者执行 unlocak tables;

悲观锁:

悲观锁就是程序自带的锁 比如update delete insert 这些 执行的时候会默认加个锁 它指的是对数据被外界(包括本系统当前的其他事务,以及来自外部系统的事务处理)修改持保守态度,因此,在整个数据处理过程中,将数据处于锁定状态。悲观锁的实现,往往依靠数据库提供的锁机制(也只有数据库层提供的锁机制才能真正保证数据访问的排他性,否则,即使在本系统中实现了加锁机制,也无法保证外部系统不会修改数据)。 说白了他就是排他锁!

乐观锁:

乐观锁 相对悲观锁而言,乐观锁假设认为数据一般情况下不会造成冲突,所以在数据进行提交更新的时候,才会正式对数据的冲突与否进行检测,如果发现冲突了,则让返回用户错误的信息,让用户决定如何去做。那么我们如何实现乐观锁呢,一般来说有以下2种方式:

image

1:使用数据版本(Version)记录机制实现,这是乐观锁最常用的一种实现方式。什么是数据版本? 就是给数据增加一个版本标识,一般是通过为数据库表增加一个数字类型的 “version” 字段来实现。当读取数据时,将version字段的值一同读出,数据每更新一次,对此version值加一。当我们提交更新的时候,判断数据库表对应记录的当前版本信息与第一次【学Java,到凯哥学堂kaige123.com】取出来的version值进行比对,如果数据库表当前版本号与第一次取出来的version值相等,想等就让他更新修改,否则认为是过期数据。

2:乐观锁定的第二种实现方式和第一种差不多,同样是在需要乐观锁控制的table中增加一个字段,名称无所谓,字段类型使用时间戳(timestamp), 和上面的version类似,也是在更新提交的时候检查当前数据库中数据的时间戳和自己更新前取到的时间戳进行对比,如果一致则OK,否则就是版本冲突。

image

image

image

0
0
分享到:
评论

相关推荐

    windows版mysql安装包-mysql5-mysql-5.5.zip

    - **InnoDB性能提升**: 包括更快的插入速度,更高的并发处理能力,以及更少的锁冲突。 - **FEDERATED存储引擎**: 支持远程数据库链接,实现跨服务器的数据集成。 - **分区功能增强**: 支持更多的分区策略,提高...

    A001-MySQL安装、MySQL优化、innodb 锁问题监控处理、MySQL binlog日志、MySQL 基础

    A003-innodb 锁问题监控处理 A004-MySQL binlog日志 A005-MySQL 基础 A006-SQL语法 A007-MySQL 修改密码 特点和功能: 开源性: MySQL是开源软件,可以免费获取和使用。它的开放性质使得它受到了广泛的...

    mysql-server-mysql-8.3.0.tar.gz

    2. **InnoDB存储引擎优化**:InnoDB是MySQL默认的事务处理引擎,8.3.0版本可能会进一步优化其性能,包括更快的索引构建、更高效的锁机制以及更好的内存管理。 3. **窗口函数**:这是MySQL 8.0引入的新特性,允许在...

    mysql-server-mysql-5.7.36.tar.gz

    4. **增强的性能监控**:通过Performance Schema,用户可以更深入地了解数据库的运行情况,包括锁、线程、内存使用等,从而进行更有效的性能调优。 5. **柱状图索引(CTE)**:引入了Common Table Expressions(CTE...

    Linux-Mysql主从同步配置

    Linux-Mysql 主从同步配置 本文将详细解释 Linux-Mysql 主从同步配置的步骤和知识点。 一、主服务器配置 1. 编辑数据库配置文件 my.cnf, 一般在/etc/目录下。 2. 在[mysqld]下面加入以下代码: * log-bin=mysql...

    分布式锁实现(基于redis-mysql)1

    本文主要探讨了三种常见的分布式锁实现方式,包括基于Redis、MySQL以及Zookeeper的实现方法。 **基于Redis实现分布式锁** Redis是一个内存数据库,其命令执行是单线程的,这使得它非常适合用来实现分布式锁。Redis...

    shiro-freemarker-springBoot- redis-mysql

    此外,Redis还可以用于实现分布式锁,提高多线程环境下的并发处理能力。 **MySQL** MySQL是一个广泛使用的开源关系型数据库管理系统。在本项目中,MySQL主要负责持久化存储数据,如用户账户信息、权限角色等。...

    项目9--MySQL数据库中的事务机制与锁机制.pptx

    项目9--MySQL数据库中的事务机制与锁机制.pptx

    go-mysql-lock:MySQL支持的锁定基元

    去mysql锁 go-mysql-lock提供基于MySQL的锁定原语锁定名称是字符串,MySQL对64个字符的锁定名称强制使用最大长度。 用例 尽管Zookeeper和etcd等系统提供了成熟的锁定原语,但是当您拥有一个主要依赖MySQL的正常运行...

    cacti-mysql-template指标解释

    ### cacti-mysql-template指标解释 在IT运维与数据库管理领域中,使用Cacti进行MySQL服务器的监控是一项常见的需求。Cacti是一款开源网络监控系统,它能够通过多种方式收集数据并生成图表,帮助管理员更好地理解...

    cacti-mysql-template指标解释.pdf

    ### cacti-mysql-template指标解释 #### 概述 本文档主要介绍cacti-mysql-template中的各项指标,该模板旨在为Cacti监控工具提供MySQL性能指标的图形化展示。通过这些图表,可以更好地理解和监控MySQL服务器的运行...

    mysql高性能---mysql数据库的性能调优

    5. **并发控制**:通过调整线程池大小、事务隔离级别等参数,可以平衡并发处理能力和资源消耗,避免过多的锁等待和死锁。 6. **分区与分表**:对于大数据量的表,可以采用分区或分表策略,将数据分散到多个物理存储...

    High-Performance-MySQL指导手册

    5. **并发控制**:介绍并发访问下的锁机制,包括表锁、行锁、读写锁,以及死锁检测和解决策略。 6. **复制与高可用性**:MySQL的主从复制是实现高可用性和数据备份的重要手段,书中详细讲解了复制的工作原理、配置...

    grafana-dashboard-mysql-redis-web.zip

    MySQL Dashboard在Grafana中提供了一整套可视化图表,帮助管理员监测数据库的运行状态,包括但不限于查询性能、连接状态、慢查询、磁盘使用情况、InnoDB引擎的锁等待等。通过这些图表,可以快速定位并解决数据库性能...

    mysql面试题-mysql经典面试题目-数据库的基本概念-SQL语法-事务处理-索引优化-性能调优-mysql-面试题目

    数据库锁用于并发控制,常见的锁类型有读锁(共享锁)和写锁(排他锁),还有行级锁、页级锁和表级锁等,适用于不同级别的并发场景。 数据库复制是实现高可用性和故障恢复的重要手段,主从复制允许数据从主服务器...

    2022-MYSQL-数据库-运维知识

    - 学习如何阅读错误日志,识别常见问题如锁等待、内存溢出等。 - 使用`SHOW PROCESSLIST`检查当前运行的进程,定位阻塞查询。 8. **性能调优**: - 优化查询语句,避免全表扫描,合理使用JOIN和子查询。 - 调整...

    Linux-MySQL-ConnectionPool-C.zip

    这可能需要使用互斥锁(mutexes)或其他同步机制来防止数据竞争。 3. **连接管理**:连接池需要管理连接的生命周期,包括初始化、分配、回收和释放。在创建连接池时,可以设置一个最小和最大连接数限制,以平衡资源...

    MySQL锁类型以及子查询锁表问题、解锁1

    MySQL中的锁机制是数据库并发控制的关键部分,它确保了在多用户环境中数据的一致性和完整性。在MySQL中,主要存在两种类型的锁:行级锁(Row-Level Locks)和表级锁(Table-Level Locks)。InnoDB存储引擎默认支持...

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

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

Global site tag (gtag.js) - Google Analytics