zoukankan      html  css  js  c++  java
  • Mysql锁机制

    1.  锁的定义和概念:在数据库中,除了传统的计算资源(如CPU、RAM、I/O等)的争用以外,数据也是一种供需要用户共享的资源。如何保证数据并发访问的一致性、有效性是所有数据库必须解决的一个问题,锁冲突也是影响数据库并发访问性能的一个重要因素。

       从对数据库操作的类型分,分为读锁和写锁。

       读锁(共享锁):针对同一份数据,多个读操作可以同时进行而不会互相影响 
       写锁(排它锁):当前写操作没有完成前,它会阻断其他写锁和读锁。

       读锁会阻塞写,但是不会阻塞读,而写锁会阻塞写和读操作。

       从对数据操作的粒度分,分为表锁和行锁。

    2.  表锁:表锁偏向MyISAM存储引擎,开销小,加锁快,无思索,锁定粒度大,发生锁冲突的概率最高,并发度最低。

       手动增加表锁:

    lock table 表名称 read(write),表名称2 read(write),其他;

       查看表上加过的锁:

    show open tables;

       删除锁:

    unlock tables;

    3.  行锁:行锁偏向InnoDB存储引擎,开销大,加锁慢,会出现死锁,锁定粒度最小,发生锁冲突的概率最低,并发度也最高。InnoDB与MYISAM的最大不同有两点:一是支持事务(TRANSACTION);二是采用了行级锁。偏写。

       行锁支持事务,具体事务的特性和带来的问题可以看https://www.cnblogs.com/jkzr/p/10695482.html

  • 相关阅读:
    合并排序法-Java实现
    桶排序(heap sort)-Java实现
    Shell排序法-Java实现
    快速排序法-Java实现
    选择排序法-Java实现
    树状数组例题-数星星,简单题easy,校门外的树2,清点人数
    [USACO]骑马修栅栏 Riding the Fences
    tarjan 割点
    [USACO07OPEN]便宜的回文Cheapest Palindrome
    [AHOI2009]维护序列
  • 原文地址:https://www.cnblogs.com/jkzr/p/10697744.html
Copyright © 2011-2022 走看看