当前位置 博文首页 > 文章内容

    表锁

    作者: 栏目:未分类 时间:2020-09-19 17:02:00

    本站于2023年9月4日。收到“大连君*****咨询有限公司”通知
    说我们IIS7站长博客,有一篇博文用了他们的图片。
    要求我们给他们一张图片6000元。要不然法院告我们

    为避免不必要的麻烦,IIS7站长博客,全站内容图片下架、并积极应诉
    博文内容全部不再显示,请需要相关资讯的站长朋友到必应搜索。谢谢!

    另祝:版权碰瓷诈骗团伙,早日弃暗投明。

    相关新闻:借版权之名、行诈骗之实,周某因犯诈骗罪被判处有期徒刑十一年六个月

    叹!百花齐放的时代,渐行渐远!



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

    一、锁的分类

    从对数据操作的类型来分

    读锁(共享锁)写锁(排它锁)

    从对数据操作的粒度来分

    表锁行锁

    二、表锁(偏读)

    特点:偏向MyISAM存储引擎,开销小,加锁快,无死锁,锁定粒度大,发生锁冲突的概率最高,并发度低。下面通过案例来说明表锁的一些情况。

    #创建mylock表,并插入5条数据。注意数据引擎使用的是MyISAM
    drop table if exists mylock;
    CREATE TABLE mylock (
        id INT PRIMARY KEY auto_increment,
        name VARCHAR (20) NOT NULL
    ) ENGINE MyISAM DEFAULT charset = utf8;
    insert into mylock (name) values ('a');
    insert into mylock (name) values ('b');
    insert into mylock (name) values ('c');
    insert into mylock (name) values ('d');
    insert into mylock (name) values ('e');
    #手动增加表锁命令
    lock table tablename1 read(write),tablename2 read(write);
    #查看表是否被加锁

     

     

     如果In_use显示不为0,则表示表被加锁。

    #释放表锁命令
    unlock tables;

    三、表锁(read)案例

    在mylock表上加读锁。将当前会话命名为A

     

     

     

    转自:https://www.cnblogs.com/developer_chan/p/9234925.html