Mysql
文章平均质量分 68
银氨溶液
天生我材必有用,千金散尽还复来
展开
-
脏读、不可重复读、幻读的解决方法
上一篇博客提到了脏读、不可重复读、幻读的含义,也知道了是因为什么情况导致出现的这些问题,这篇博客就带大家一起来了解一下他们的解决办法~:脏读出现的原因主要是因为一个事务读取了另外一个事务未提交的数据,就可能出现脏读,解决办法可以通过“读已提交”这种形式进行解决。原创 2024-10-06 19:35:38 · 919 阅读 · 0 评论 -
MySql数据引擎InnoDB引起的锁问题
脏读:一个事务还在对数据进行修改,但是还未更新到数据库,这个时候另外一个事务也来读取这些数据,由于第一个事务跟新的数据还没有提交到数据库,所以第二个事务读取的数据实际上就是脏数据。上一个事务的更新,而且事务之间是互相隔离的,彼此都不知道他们之间的存在,所以这种情况下就很有可能出现数据丢失的问题。,此时事务A再次通过相同的查询条件查询数据,发现两次查询的数据不一样,就给了一种出现幻觉的感觉。后的数据,导致事务A在事务B之前读取的数据和事务B后读取的数据不一样。不可重复读着重强调了事务A读取了事务B。原创 2024-10-06 18:00:26 · 325 阅读 · 0 评论 -
MySQL底层为什么选择用B+树作为索引
跳表底层实质就是可以进行二分查找的有序链表。而且在链表基础加上索引层。即能支持插入、删除等动态操作,也支持按区间高效查询。而且不管是查找、插入、删除对应的时间复杂度都是O(logn)。要理解跳表,先来看链表,假设链表存储是有序的数据,我们要想查询某一个数据,在最差的情况下要从头全遍历整个链表,时间复杂度是O(n)。从上图所示,我们如果要查询一个26的节点,跳表就可以先从索引层遍历,当遍历到在索引层的21节点,会发现下一个索引层的节点是36节点时,很明显要找的26的节点就在这区间。原创 2024-09-13 16:18:31 · 1153 阅读 · 1 评论 -
一条sql语句执行的全过程
但是缓存也有好坏,好处是可以快速查出相关数据,坏处是如果有新的数据,缓存需要每次做同步处理,这样的话如果是插入场景较多的情况对系统性能影响较大。:开始执行的时候,先要判断一下你对这个表有没有执行查询的权限,如果没有,则会返回没有权限的错误,如果有权限,就打开表根据上一步生成的执行计划继续执行,并将所有满足条件的行组成记录集作为结果集返回给客户端。:优化器是在表里面有多个索引的时候,决定使用哪个索引,或者在一个多表关联的语句中,决定各个表的连接书序。:负责与服务端构建连接,并进行权限认证。原创 2024-09-13 14:36:56 · 358 阅读 · 0 评论