- 博客(5)
- 收藏
- 关注
原创 浅谈MySQL 架构与内部模块(万字长文干货)
一条查询 SQL 语句是如何执行的? 首先,数据是存储在 MySQL 服务端的。应用程序或者工具都是客户端。客户端要读写数据库,第一步要跟数据库建立连接。1.1. 通信协议1.1.1.通信协议通信类型:同步或者异步一般来说客户端连接数据库都是同步连接。连接方式:长连接或者短连接MySQL 既支持短连接,也支持长连接。一般来说都是长连接,而且会把这个连接放到客户端的连接池。可以用 show status 命令查看 MySQL 当前有多少个连接show gl..
2021-03-10 11:00:09 306 1
原创 ReentrantLock获取锁失败线程入队阻塞与唤醒流程解析
首先会判断state是否=0,在线程1获取到锁的时候,state值就已经被改为1,此处判断不成立,来到else逻辑,再判断独占线程是否是当前线程,如果是,则state+1此时便实现了可重入的逻辑;1.先获取当前线程1对应的Node节点的前驱节点,也就是头节点;1.第一次循环tail为null,进入if条件中,通过CAS把构建了一个头节点Node@698,同时把头节点赋值给了尾节点,即节点Node@698既是头节点也是尾节点;随后释放锁,唤醒线程2,获取锁执行业务代码,释放锁的逻辑也与前面一致,就不再展开;
2024-04-27 15:51:34 1749
原创 深入理解MySQL索引(万字长文干货)
MySQL 索引深入剖析1. 索引是什么数据库索引,是数据库管理系统(DBMS)中一个排序的数据结构,以协助快速查询更新数据库表中数据。图解索引数据是以文件的形式存放在磁盘上面的,每一行数据都有它的磁盘地址。如果没有索引的话,我们要从 500 万行数据里面检索一条数据,只能依次遍历这张表的全部数据(循环调用存储引擎的读取下一行数据的接口),直到找到这条数据。但是我们有了索引之后,只需要在索引里面去检索这条数据就行了,因为它是一种特殊的专门用来快速检索的数据结构,我们找到数据存放的磁盘..
2021-03-10 17:36:26 297 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人