为什么做网站要用谷歌浏览器,流感用什么药更好,长春做网站优化,seo网站开发注意事项MySQL各存储引擎使用了3种类型的锁定机制#xff1a;1. 行级锁定(row-level) --- MyISAM、Memory、CSV*锁定对象颗粒度最小#xff0c;发生资源争用的概率最小#xff0c;在并发处理能力上有较大优势。*缺点是每次获取锁和释放锁需要做的事情很多#xff0c;带来消耗大1. 行级锁定(row-level) --- MyISAM、Memory、CSV*锁定对象颗粒度最小发生资源争用的概率最小在并发处理能力上有较大优势。*缺点是每次获取锁和释放锁需要做的事情很多带来消耗大也最容易发生死锁。2. 表级锁定(table-level)--- Innodb、NDB Cluster*锁定对象颗粒度最大实现逻辑简单获取锁和释放锁的速度很快一次会将整个表锁定可以很好避免死锁。*缺点是出现资源争用的概率最高致使并发度大打折扣。*主要分为2种类型读锁定和写锁定*通过4个锁定队列来维护这2种锁定Current read-lock queue (lock-read) --- 存放持有读锁的所有线程按获取到锁的时间顺序存放Pending read-lock queue (lock-read_wait) --- 存放正在等待锁定资源的线程Current write-lock queue (lock-write) --- 存放持有写锁的所有线程按获取到锁的时间顺序存放Pending write-lock queue (lock-write_wait) --- 存放正在等待锁定资源的线程*MySQL内部实现表锁定多达11种类型由系统中的一个枚举量(thr_lock_type)定义各值描述如下IGNORE --- 当发生锁请求的时候内部交互使用在锁定结构和队列中并不会有任何信息存储UNLOCK --- 释放锁定请求的交互用锁类型READ --- 普通读锁定WRITE --- 普通写锁定READ_WITH_SHARED_LOCKS --- 在Innodb中使用到由如下方式产生SELECT ... LOCK IN SHARE MODEREAD_HIGH_PRIORITY --- 高优先级读锁定READ_NO_INSERT --- 不允许Concurrent Insert的锁定WRITE_ALLOW_WRITE --- 当由存储引擎自行处理锁定的时候mysqld允许其他的线程再获取读或写锁定因为即使资源冲突存储引擎自己也会知道怎么处理WRITE_ALLOW_READ --- 这种锁定发生在对表做DDL(ALTER TABLE ...)的时候MySQL可以允许其他线程获取读锁定因为MySQL是通过重建整个表然后再RENAME而实现的该功能所以整个过程原表仍然可以提供读服务WRITE_CONCURRENT_INSERT --- 正在进行Concurrent Insert 时候所使用的锁定方式该锁定进行的时候除了READ_NO_INSERT之外的其他任何读锁定请求都不会被阻塞WRITE_DELAYED --- 在使用INSERT DELAYED时候的锁定类型WRITE_LOW_PRIORITY --- 显示声明的低级别锁定方式通过设置LOW_PRIORITY_UPDAT 1 而产生WRITE_ONLY --- 当在操作过程中某个锁定异常中断之后系统内部需要进行CLOSE TABLE操作在这个过程中出现的锁定类型就是WRITE_ONLY3. 页级锁定(page-level) --- BerkeleyDB锁定颗粒度介于行级锁定和表级锁定之间所需资源开销以及所能提供的并发能力也介于两者之间与行级锁定一样会发生死锁。