标签:innodb nod 写锁 优化 步骤 sele 事件 nts 读锁
读锁和写锁,表锁和行锁
偏向MyISAM存储引擎,开销小,加锁快,无死锁。发生锁冲突的概率最高,并发度最低。
会话1对表1加了读锁后,可以查询表1,不能更新表1,也不能查询别的表。与此同时会话2可以查询表1,更新表1会阻塞,等待读锁的释放。
会话1对表1加了写锁后,可以查询表1,可以更新表1,不能查询别的表。与此同时会话2查询和更新表1,会阻塞,等待写锁的释放。
偏向InnoDB存储引擎,开销大,加锁慢。发生锁冲突概率最低,并发度最高。与MyISAM不同之处:支持事务,采用行级锁。
关于事务及隔离级别的内容可以观看此博客
[https://www.cnblogs.com/chenshaowei/p/12566030.html]
当查询时,索引失效(比如varchar没加单引号查找),则行锁变为表锁,将极大影响数据库性能,因此索引失效是一个很大的问题。
一方更新数据,范围在a到z,不是连续的,有一个缺失c无记录。一方插入c记录。则第一方会把a到z都锁住导致c计入插入不了。
select * from table1 where a=1 for update
//则a=1这条记录上锁,别的会话修改会造成阻塞
slave从master读取binlog来进行数据同步。步骤如下:
mysql版本一致,后台以服务运行。具体如何配置,仍待学习。
标签:innodb nod 写锁 优化 步骤 sele 事件 nts 读锁
原文地址:https://www.cnblogs.com/chenshaowei/p/12593572.html