事务与锁表

2020-03-05  本文已影响0人  cdz620

手工锁表、释放锁

锁的类型

表锁

行锁

页面锁

myisam 锁机制

myisam 更新的sql语句执行优先级优于查询语句,一旦大量的更新操作就会阻塞表,导致死锁。锁myisam引擎不适合大量更新的表。

调节myisam调度机制

辅助机制

通过设置max_write_lock_count设置合适的值避免一直查询不到数据

innodb 锁机制

innodb行锁是通过给索引上的索引项加锁来实现,只有通过索引条件检索数据,innodb才使用行级锁,否则使用表锁

查看innodb行锁竞争情况

手动在sql语句中指定锁

innodb行锁使用注意事项

non-deterministic 不确定的sql

两种方式都会对oldtab 增加间隙阻止更oldtab数据

相关变量

事务

  1. 开启事务:start transaction | begin
  2. 释放事务:
  1. savapoint test;
  2. rollback to test;

小结

对于MyISAM的表锁,主要讨论了以下几点:

对于InnoDB表,本章主要讨论了以下几项内容。

在了解InnoDB锁特性后,用户可以通过设计和SQL调整等措施减少锁冲突和死锁,包括:

上一篇 下一篇

猜你喜欢

热点阅读