`
xmong
  • 浏览: 258865 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

MySQL数据库锁

阅读更多

MySQL数据库锁



目录
1 MYSQL数据库锁简介 1
1.1 MYSQL数据库锁机制简介 1
2 MYSQL数据库锁分类 1
2.1 行级锁定(ROW-LEVEL) 1
2.2 表级锁定(TABLE-LEVEL) 1
2.3 页级锁定(PAGE-LEVEL) 1



1 MySQL数据库锁简介
1.1 MySQL数据库锁机制简介
在大数据并发操作的今天,为了保证数据一致完整性,任何一个数据库都存在锁机制。锁机制的优劣直接影响到一个数据库的并发能力和性能,所以锁机制的实现也是数据库的核心技术之一。
MySQL数据库由于其自身架构的特点,存在多种数据库存储引擎,每种存储引擎所针对的应用场景都不同,为了满足各种特定使用场景的需求,每种存储引擎的锁机制都是有所不同的。下面主要是对数据库使用最为频繁的存储引擎MyISAM,BDB和Innodb各自的锁机制进行一些简单的分析。

2 MySQL数据库锁分类
总的来说,MySQL各种存储引擎使用了三种级别的锁机制:行级锁定(Innodb),页级锁定(BDB),表级锁定(MyISAM)。

2.1 行级锁定(row-level)
行级锁定最大的特点就是锁定对象的颗粒度很小,也是目前数据库管理软件所实现锁定粒度最小的。由于锁定粒度很小,所以发生锁定资源争用的概率也是最小的,能够给予应用程序尽可能并发处理能力而提高一些需求高并发应用系统的整体性能。
虽然能够在并发处理能力上面有较大的优势,但是行级锁定也因此带来了不少弊端。由于锁定资源的颗粒度很小,所以每次获取锁和释放锁想要做的事情也更多,带来的消耗自然也就更大,另外,行级锁定也是最容易发生死锁的。

2.2 表级锁定(table-level)
和行级锁定相反,表级锁定时MySQL各存储引擎中最大颗粒度的锁定机制。该锁定机制最大的特点就是逻辑非常简单,带来的消耗和负面影响最小,所以获取锁和释放锁的速度很快。由于表级锁定一次会将整个表锁定,所以可以很好的避免困扰我们的死锁问题。
当然,锁定粒度大带来的最大负面影响就是出现锁定资源争用的概率也会最高,致使并发度和性能大大下降。

2.3 页级锁定(page-level)
页级锁定时MySQL中比较特别的一种锁定级别,在其他数据库管理软件中也是不太常见的,它的特点就是锁定的颗粒度介于行级和表级之间,所以获取锁定需求的资源开销,以及所能提供的并发处理能力也同样介于两者之间。另外页级锁定和行级锁定一样,也会发生死锁。
在数据库实现资源锁定的过程中,随着锁定资源颗粒度的减小,锁定相同数据量的数据所需要的内存数量也会越来越多,实现的算法也会越来越复杂。不过,随着锁定资源颗粒度的减小,应用程序的访问请求遇到锁等待的可能性也会随之降低,系统整体的并发度也会随之提升。




分享到:
评论

相关推荐

    mysql数据库锁+优化.pdf

    全局锁:针对整个数据库执行全局层面的锁,上锁后任何对该数据库的DDL、DML语句都*无法执行,只能进行查询操作。一般使用场景是用于数据库备份。但不建议使用该方法,因为阻塞所有非读操作会影响业务的正常执行。因此 ...

    在Linux下,MySQL数据库的启动、停止和重启

    Mysql启动、停止、重启常用命令(都是在root背景下)  a、启动方式  1、使用 service 启动:  [root@localhost /]# service mysqld start (5.0版本是mysqld)  [root@szxdb etc]# service mysql start (5.5.7...

    mysql数据库锁的产生原因及解决办法

    主要介绍了mysql数据库锁的产生原因及解决办法,需要的朋友可以参考下

    数据库锁,mysql和oracle不同,关系型数据库的锁

    数据库锁,mysql和oracle不同,关系型数据库的锁;数据库锁,mysql和oracle不同,关系型数据库的锁

    MySQL数据库优化

    MySQL数据库优化(五):锁 25 MySQL数据库优化(六):优化数据库结构 29 MySQL数据库优化(七):MySQL如何使用索引 31 MySQL数据库优化(九) 34 MySQL数据库优化(八):MyISAM 索引缓存 36 MySQL数据库优化(十...

    mysql数据库应用与管理视频教程详细完整版

    内容包括dba视频教程中的mysql数据库应用与管理,第一章:配置mysql服务器 第二章:获取元数据 第三章:存储引擎 第四章:隔离级别与锁 第五章:使用分区 第六章:导出与导入数据 第七章:备份与恢复 第八章:使用...

    MySQL数据库:锁定与解锁.pptx

    数据库编程 锁定与解锁 课程目标 了解 —— 锁定和解锁的概念; 掌握 —— 锁定和解锁的设置; 锁定与解锁 MySQL提供了LOCK TABLES语句来锁定当前线程的表,语法格式如下: LOCK TABLES tbl_name [AS alias] {READ ...

    MySQL数据库锁机制原理解析

    在并发访问情况下,很有可能出现不可重复读等等读现象。为了更好的应对高并发,封锁...乐观锁和悲观锁不仅在关系数据库里应用,在Hibernate、Memcache等等也有相关概念。 悲观锁:也即悲观并发控制,Pessimistic Concur

    mysql数据库规范.docx

    mysql数据库规范全文共3页,当前为第1页。mysql数据库规范全文共3页,当前为第1页。mysql数据库规范 mysql数据库规范全文共3页,当前为第1页。 mysql数据库规范全文共3页,当前为第1页。 规范名称 具体内容 解释 ...

    MySQL数据库-事务、锁及SQL优化

    MySQL数据库-事务、锁及SQL优化

    mysql 锁机制及mysql中的锁介绍.pdf

    系统介绍mysql锁机制

    多线程访问mysql数据库

    主要分为3部分: 1.DBSqlMan是多线程访问mysql的动态库 2.mysql5,开源的windows下使用的mysql2次开发库,...其他接口主要是后续扩展的,比如获取表字段,对表进行加减锁,获取计算机信息等,不是核心的接口,不做解释

    MySQL 数据库锁定机制

    MySQL 数据库锁定机制,全揭秘,非常不错的,实践文档

    MySQL数据库基础与实例教程 中文PPT版 4.25MB.rar

    本书使用量身定制的案例全面讲解MySQL基础知识以及MySQL5.6新特性,InnoDB全文检索、触发器、存储过程、函数、事务、锁等概念,全部融入该案例。 本书尽量将抽象问题形象化、图形化,复杂问题简单化。即便读者没有...

    mysql的简单应用

    安装完毕后在cmd 里面 以 mysql -uroot -p; 登入 然后 显示可用数据库: show databases; 选择 一个数据库操作:如默认的test 或者 自己建立一个数据库 create database mydatabase; 然后在mydatabase 里制表 很...

    Mysql高级:锁

    主要二个主题:锁机制和全局机制 锁机制:概述,三锁:表锁和行锁,页锁

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

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

    MYSQL 解锁与锁表介绍

    相对其他数据库而言,MySQL的锁机制比较简单,其最显著的特点是不同的存储引擎支持不同的锁机制。比如,MyISAM和MEMORY存储引擎采用的是表级锁(table-level locking);BDB存储引擎采用的是页面锁(page-level ...

    数据库事务及锁机制面试题

    并发处理带来的问题中,更新丢失可以完全避免,由应用对数据加锁即可。脏读、不可重读度、幻读,其实都是数据库的一致性问题,...我们的数据库锁,就是为了构建这些隔离级别存在的。mysql默认的隔离级别为可重复读。

Global site tag (gtag.js) - Google Analytics