随笔分类 -  数据库

Mvcc如果防止幻读
摘要:InnoDB存储引擎在 RR 级别下通过 MVCC和 Next-key Lock 来解决幻读问题: 1、执行普通 select,此时会以 MVCC 快照读的方式读取数据 在快照读的情况下,RR 隔离级别只会在事务开启后的第一次查询生成 Read View ,并使用至事务提交。所以在生成 Read V 阅读全文

posted @ 2023-08-12 15:06 潮流教父孙笑川 编辑

一致性非锁定读和锁定读,总是读取最新数据,lock in share mode、for update
摘要:如果执行的是下列语句,就是 锁定读(Locking Reads) select ... lock in share mode select ... for update insert、update、delete 操作 在锁定读下,读取的是数据的最新版本,这种读也被称为 当前读(current rea 阅读全文

posted @ 2023-08-12 15:03 潮流教父孙笑川 编辑

binlog,redolog的执行顺序
摘要:先让redolog进入 prepare 状态,再记录binlog,再提交redolog 以上就是一条查询 SQL 的执行流程,那么接下来我们看看一条更新语句如何执行的呢?SQL 语句如下: update tb_student A set A.age='19' where A.name=' 张三 '; 阅读全文

posted @ 2023-08-12 14:58 潮流教父孙笑川 编辑

脏读、丢失修改、幻读、不可重复读,间隙锁解决幻读
摘要:脏读(Dirty read) --A事务修改了值,但没提交,又回滚了。B读取了A修改了的值,而不是回归后的值 一个事务读取数据并且对数据进行了修改,这个修改对其他事务来说是可见的,即使当前事务没有提交。这时另外一个事务读取了这个还未提交的数据,但第一个事务突然回滚,导致数据并没有被提交到数据库,那第 阅读全文

posted @ 2023-08-12 14:17 潮流教父孙笑川 编辑

union join区别
摘要:union是连接两个select语句形成一个并集,join则是通过两个表的相同字段进行连接,是对两个表连接 以下是 SQL 中不同类型的 JOIN: (INNER) JOIN:返回两个表中具有匹配值的记录。 LEFT (OUTER) JOIN:返回左表中的所有记录,以及右表中匹配的记录。 RIGHT 阅读全文

posted @ 2023-08-12 13:57 潮流教父孙笑川 编辑

索引失效的场景、建索引的原则
摘要:避免索引失效 索引失效也是慢查询的主要原因之一,常见的导致索引失效的情况有下面这些: 使用 SELECT * 进行查询; SELECT * 不会直接导致索引失效(如果不走索引大概率是因为 where 查询范围过大导致的),但它可能会带来一些其他的性能问题比如造成网络传输和数据处理的浪费、无法使用索引 阅读全文

posted @ 2023-08-12 12:00 潮流教父孙笑川 编辑

覆盖索引,覆盖索引通过explain查看
摘要:、创建覆盖索引并使用 EXPLAIN 命令分析。 为了能够对这 100w 数据按照 score 进行排序,我们需要执行下面的 SQL 语句。 SELECT `score`,`name` FROM `cus_order` ORDER BY `score` DESC;#降序排序 使用 EXPLAIN 命 阅读全文

posted @ 2023-08-12 11:53 潮流教父孙笑川 编辑

唯一索引和普通索引的区别。changge_buffer
摘要:为了说明普通索引和唯一索引对更新语句性能的影响这个问题,需要先了解一下change buffer的概念: 当需要更新一个数据页时,如果数据页在内存中就直接更新,而如果这个数据页还没有在内存中的话,在不影响数据一致性的前提下,InnoDB会将这些更新操作缓存在change buffer中,这样就不需要 阅读全文

posted @ 2021-10-12 22:38 潮流教父孙笑川 编辑

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示