0 mysql的隔离级别有4个,读未提交, 读已提交(rc), 可重复读(rr),串行化,mysql默认的隔离级别时rr
1聚簇索引就是主键索引, 可以一步到位i的索引
非聚簇索引就是要通过二次查找, 实际存放的是索引和数据的地址, 后面还要同通过数据地址找到数据。
2mysql的binlog记录有3种模式, statement, row, mixed
statement就是记录sql语句的原文, 例如update T set a=now() ,这样在主从复制的时候,就会导致数据的不一致。
row这种记录模式就是记录具体执行的值, 比如sql 执行update T set a=now() 实际会转换为 update T set a=1987499333 这种具体的值,但是有个缺陷,row模式会把批量操作转换为单行,这样比较占用空间。
为了解决上面的2个2问题于是就有了mixd混合模式,自动识别sql是那种类型采用那种模式。
3.mysql的二段性提交。
在执行sql更新时会记录redolog和binlog二个日志, redolog时在事务执行过程中不断写入。服务器托管网而binlog只有在提交事务时才会写入。写入时机不一样,写完redolog后,binlog的写入发生异常时就会导致数据不一致问题。于是就有了mysql的二段性提交。
二段性提交就是mysql会把redolog的写入拆成prepare 和commit mysql在刚开始写入redolog的时候把redolog设置为准备阶段, 在事务提交后, 写入binlog成功后,再把redolog设置commit阶段,这样写入binlog发生异常也不会影响,mysql根据redolog恢复数据时,发现redolog还处于prepare阶段就会回滚事务。
4.mvcc mysql每次执行事务都会形成一条记录,下次事务执行会把roll_rc指向上一个事务形成一个版本链,只在rc和rr的隔离级别下有效, 默认rc每一次查询就会建一个新的readVie服务器托管网w, rr只有第一次查询才会建一个readview,后面的查询都用第一次的readview所以叫可重复读
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
相关推荐: 开年!5 款令人惊艳的开源项目「GitHub 热点速览」
朋友们开工大吉啊!我刚从假期模式切换回来,完全无心工作有些不在状态,比如开机密码错了好几次。闲话少叙,下面就让我们一起看看,春节这段时间 GitHub 上又出了什么有趣、好玩的开源项目。 今年上来就是王炸一款一周飙升了 6,000 Star 的 Git 客户端…