临沂品牌网站建设公司,技术社区网站开发,信息分类网站好建吗,网站建设中涉及到的编程语言MySql虽然是一个相对简单的关系型数据库#xff0c;但也是一个最常用的数据库#xff0c;也是一个非常经典的数据库#xff0c;很多云产品也是基于MySql做了二开#xff0c;从而变得非常强大#xff0c;其中MySql最常用的是Innodb引擎#xff0c;因为该引擎支持事务…MySql虽然是一个相对简单的关系型数据库但也是一个最常用的数据库也是一个非常经典的数据库很多云产品也是基于MySql做了二开从而变得非常强大其中MySql最常用的是Innodb引擎因为该引擎支持事务行级锁等特性从而使其非常适用于业务开发的场景。
MySql的知识体系其实很庞大真要完全吃透其实非常复杂而且很多知识点也容易忘记或者没理解透但是想要用好MySql就必须加强对它相关知识的记忆其实很多人都或多或少见过这些知识点甚至曾经也都记得但是当一段时间过去可能对这些知识点又产生了一层朦胧本人亦如此现在将展开对此回顾
在Innodb中
当在RC和RR的isolation下凡是SELECT xx FROM xx (WHERE xx)是快照读不加任何锁而只要是添加S锁或者X锁都会产生当前读凡是不生产锁的就是快照读产生的锁的都是当前读
RU/SERIALIZE的isolution下全部使用当前读其中串行化级别下的普通SELECT都会默认在尾部追加S锁以此来实现当前读。
RC 和 RR 隔离级别都是由 MVCC 实现区别在于
RC 隔离级别时read-view 是每次执行 select 语句时都生成一个RR 隔离级别时read-view 是在第一次执行 select 语句时生成一个。
需要注意的是...IN SHARE MODE、...FOR UPDATE、INSERT、UPDATE、DELETE等触发锁的行为一定要走索引不然会导致锁表其实范围查询时若命中纪录为空这种情况即使走索引列也会认为未走索引而锁表