的锁调度
MyISAM的读和写锁互斥,读操作串行的
一个进程请求某个MyISAM表的读锁,同时另一个进程也请求同表的写锁,MySQL如何处理呢?...)中,读锁等待严重的问题
另外,MySQL也提供了一种折中的办法来调节读写冲突;
即给系统参数max_write_lock_count设置一个合适的值;
当一个表的读锁达到这个值后,MySQL便暂时将写请求的优先级降低...,必须由数据库提供一定的事务隔离机制来解决
数据库实现事务隔离的方式,基本可以分为以下两种
在读取数据前,对其加锁,防止其他事务对数据进行修改
不加任何锁,通过一定机制生成一个数据请求时间点的一致性数据快照...MySQL InnoDB默认行级锁
行级锁都是基于索引的,若一条SQL语句用不到索引是不会使用行级锁的,会使用表级锁把整张表锁住
为了允许行/表锁共存,实现多粒度锁机制,InnoDB还有两种内部使用的意向锁...如果不通过索引访问数据,InnoDB会使用表锁
间隙锁机制及使用间隙锁的原因
不同的隔离级别下,InnoDB的锁机制和一致性读策略不同
MySQL的恢复和复制对InnoDB锁机制和一致性读策略也有较大影响