mysql
文章平均质量分 73
Keep Running!
你不一定要逆风翻盘,但一定要向阳而生!
展开
-
小白日更第五十八天->一条sql语句在Mysql中是怎么执行的
最近听了几场学长们的互联网大厂面试,发现关于sql的执行过程问的频率还很高,我就去百度了一下,回答的差不多吧都,只不过有的特别详细。以我目前的能力根本看不懂。所以我就简单总结一下大概流程,面试官问起来起码能把大概说出来,估计面试官也不会很为难我们。话不多说,上图:大概流程:1、连接器先登录连接数据库,然后进行用户的身份认证,包括校验账户密码,权限等操作,如果用户账户密码已通过,连接器会到权限表中查询该用户的所有权限,之后在这个连接里的权限逻辑判断都是会依赖此时读取到的权限数据,也就是说,后续只要这原创 2021-04-09 13:02:06 · 111 阅读 · 1 评论 -
小白日更第三十二天->MVCC
今天看了一天的MVCC,总算是感觉把MVCC了解的比较透彻了,写一篇博客总结今天的学习。老规矩,先看百度百科传统的数据库读写传统的数据库进行读操作的时候会加读锁**(共享锁),是异步的,是相互不阻塞的,高并发下,多个用户同时读取数据库中的同一个资源,可以相互不干扰。而写锁(排它锁)是排他的,同步的,是会阻塞其他的用户的写锁与读锁**,只有这样才能保证,在一个时间段内,只有一个用户在对数据库进行操作,从而防止了其他用户访问到了正在修改的数据。加锁就会产生效率问题,而且大部分的操作都是读操作,也就是说大原创 2021-04-03 23:05:51 · 97 阅读 · 0 评论 -
小白日更第二十二天->通俗易懂的悲观锁和乐观锁
悲观锁和乐观锁其实是一种思想在数据库中有乐观锁和悲观锁的实现。乐观锁不是数据库自带的,是通过我们自己去实现的。比如我们对表中的数据进行操作的时候,先给数据表加一个版本(version)字段,每操作一次,将那条记录的版本号加1。也就是我们查询出那条记录的时候,先获取出来这行数据的version字段,如果要对那条记录进行操作(更新),则先判断此刻version的值是否与刚刚查询出来时的version的值相等,如果相等,则说明这段期间,没有其他程序对其进行操作,则可以执行更新,将version字段的值加1;如果原创 2021-03-24 23:59:34 · 74 阅读 · 0 评论 -
小白日更第二十一天->sql调优
之前在复习mysql的时候遇到过关于sql调优的问题,然后我就给跳过去了,想着过几天再搞定这个点,结果越拖越久,今天下定决心把这个点吃透!原创 2021-03-23 17:18:02 · 96 阅读 · 3 评论 -
小白日更第十九天->关于索引失效
我们知道mysql默认的存储引擎是innodb。而innodb的默认索引使用的是b+树索引。Hash索引Hash表在等值查询时效率很高,时间复杂度为O(1);但是不支持范围快速查找,范围查找时还是只能通过扫描全表方式。(原因也简单,hash表本来就是无序的,那范围查询就更无从说起了)B+树关于b+树我简单说,所有的叶子节点才会存储数据,非叶子节点至存储键值。叶子节点之间使用双向指针连接,最底层的叶子节点形成了一个双向有序链表。辅助索引叶子节点存储的是主键的值,所以当我们使用辅助索引进行查询的时候,会原创 2021-03-21 20:40:20 · 85 阅读 · 1 评论 -
小白日更第十六天->这篇我们聊MVCC
今天下午和我的好友天文聊起了数据库的MVCC,多版本并发控制(Multi-Version Concurrency Control)数据库隔离级别,然后就想起来我好像还没有写过Mysql相关的博客,吃完饭出去溜达了一会回来就开始写这篇关于MVCC的文章。了解Mysql的小伙伴应该都知道事务这个词,而且知道事务有四大特性,我们再巩固一下:事务的四大特性(ACID)原子性(atomicity): 事务的最小工作单元,要么全部成功,要么全部失败。一致性(consistency): 事务开始和结束后,数据库原创 2021-03-18 22:38:24 · 75 阅读 · 0 评论