zoukankan      html  css  js  c++  java
  • MySQL锁概述

    锁是计算机协调多个进程或线程并发访问某一资源的机制。在数据库中,除传统的计算资源(如CPU、RAM、I/O等)的争用以外,数据也是一种供许多用户共享的资源。如何保证数据并发访问的一致性、有效性是所有数据库必须解决的一个问题,锁冲突也是影响数据库并发访问性能的一个重要因素。从这个角度来说,锁对数据库而言显得尤其重要,也更加复杂。

    不同的存储引擎支持不同的锁机制。

    比如,MyISAM和MEMORY存储引擎采用的是表级锁(table-level locking);

    BDB存储引擎采用的是页面锁(page-level locking),但也支持表级锁;

    InnoDB存储引擎既支持行级锁(row-level locking),也支持表级锁,但默认情况下是采用行级锁。

    MySQL这3种锁的特性可大致归纳如下。

    表级锁:开销小,加锁快;不会出现死锁;锁定粒度大,发生锁冲突的概率最高,并发度最低。

    行级锁:开销大,加锁慢;会出现死锁;锁定粒度最小,发生锁冲突的概率最低,并发度也最高。

    页面锁:开销和加锁时间界于表锁和行锁之间;会出现死锁;锁定粒度界于表锁和行锁之间,并发度一般。

    从上述特点可见,很难笼统地说哪种锁更好,只能就具体应用的特点来说哪种锁更合适!仅从锁的角度来说:表级锁更适合于以查询为主,只有少量按索引条件更新数据的应用,如Web应用;而行级锁则更适合于有大量按索引条件并发更新少量不同数据,同时又有并发查询的应用,如一些在线事务处理(OLTP)系统。

  • 相关阅读:
    2016-12-31:最后一天:回顾
    ubuntu-15.10-server-i386.iso 安装 Oracle 11gR2 数据库
    ubuntu-15.04-server-i386.iso 安装 Oracle 11gR2 数据库
    ubuntu-16.04+-xxx-i386.iso :安装 Oracle 11gR2 数据库
    VirtualBox 所有版本的下载地址:http://download.virtualbox.org/virtualbox/
    上海医保每年注入时间
    打新股
    check system version
    add, subtract, multiply, divide
    WRITE T AFTER ADVANCING 2 LINES
  • 原文地址:https://www.cnblogs.com/ooo0/p/14271300.html
Copyright © 2011-2022 走看看