mysql-lock笔记

18 篇文章 0 订阅
5 篇文章 0 订阅

1 并发下,锁表不好

2 数据的备份,恢复不希望变动,加锁,双刃剑

3 协调多个进程的一种机制,下单,抢购,加锁,对资源进行保护

4 锁的分类:读和写,表和行锁,

5 读是共享的不会相互影响的,屏幕共享,写是排他的,唯我独尊;

6 表锁:开销小,加锁快

7 show open tables:查看是否加锁;

8 lock table a read,b write;

9 unlock tables;

10 lock table a read;读锁是共享的

11 加了读锁是不可以修改的,自己也不可以修改

12 自己加了读锁,别人的也不可读,仅仅可以读自己,需要清除站;

13 阻塞:a加了读锁,b不能更新!!!阻塞,

14 阻塞:性能严重的下降

read lock

1 lock table a write;

2 可以读自己lock的write,可以修改!!!

3 别人的table不能读

4 别人读a会阻塞!!!

5 唯我独准,别人读写都不行

6 有的时候不锁是缓存问题!!!

7** show status like ‘table%’;**

查看锁的情况

myislm的引擎;

9 myism不适合写为主表的引擎,适合读,阻塞,偏读!!!表锁!!!!

10 行锁:偏向innodb,力度小,冲突低,并发高,支持事务,行锁,适合写,事务的acid,

更新丢失,幻读

11 脏读:读到了修改未提交的数据

12 默认的隔离级别:可重复读;

13 四种隔离级别:

14 show VARIABLES like ‘tx_isolation’ :查看默认的数据库的隔离级别

索引失效和间隙锁

1 有自动提交,

2 set autocommit=0:取消自动提交必须手动commit才会提交

3 commit—show index from a

4 索引不当:innodb默认行锁,—会引发表锁,varchar:加引号,否则重罪,索引了,这样类型装换,索引失效,行变成表锁;

间隙锁的危害

1 数据要是连续的,数据很珍贵,某一条数据不存在!!!主键也没有,

2 范围检索的时候会为哪些字段加锁,不存在的符合条件的会被加锁为间隙锁,别人访问会阻塞!!!!

如何锁定一行

1 select * from a where age=21 for update

2 行锁:运维自己做,监控系统,innodb:实现了行锁,innodb:为高并发而生,使用不当行锁变表锁;

3 有时时客户端的连接工具,重启,缓存问题!!!

4 show status like 'innodb_row_lock’

查看innodb的行锁

5 varchar记得引号;

6 用索引检索数据

主从复制

1 mysql版本一致,不要跨越太多

2 双向ping通

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值