MySQL
2020-03-13 09:43:45 0 举报
MySQL很好的学习笔记
作者其他创作
大纲/内容
3
5
B+树索引
check point
....
id_num_8
更新到内存
1. 长链接:客户端连接成功以后,如果客户端有持续请求的话,会使用同一个连接。短连接是指每次执行完很少的请求后,就断开连接。下次查询再重新建立一个。2. 使用长链接的话,内存增长还是比较快的。这是因为 MySQL 在执行过程中临时使用的内存是管理在连接对象里面的。这些资源会在断开的时候释放。长期积累会使内存占用过大。系统强行杀死,从现象来看是mysql异常重启。解决方案是,(1)执行一个占用内存大的请求后,断开连接。(2)每次执行完一个大的请求后,都执行mysql_reset_connection,这过程不需要重新连接和权限验证3. WAL 技术,WAL 的全称是 Write-Ahead Logging,它的关键点就是先写日志,再写磁盘,也就是先写粉板,等不忙的时候再写账本。4. 隔离级别:读未提交是指,一个事务还没提交时,它做的变更就能被别的事务看到。读提交是指,一个事务提交之后,它做的变更才会被其他事务看到。可重复读是指,一个事务执行过程中看到的数据,总是跟这个事务在启动时看到的数据是一致的。当然在可重复读隔离级别下,未提交变更对其他事务也是不可见的。串行化,顾名思义是对于同一行记录,“写”会加“写锁”,“读”会加“读锁”。当出现读写锁冲突的时候,后访问的事务必须等前一个事务执行完成,才能继续执行。
数组索引
返回行数据
4
1. 索引最左前缀2. 覆盖索引3. 索引下垂(在过滤过程中,去掉不满足条件的值,减少回表次数)
操作引擎返回结果
执行器
当前值为4
写入redo的prepare阶段
隔离级别的实现
存储数据提供读写接口
10
回滚段
17
写binlog
review A
优化器
数据存储
2
词法分析语法分析
写入新行
连接管理权限验证
11
从硬盘中读取
内存
客户端
缓存
1
存储引擎
N
1. show processlist;
hash索引
redo log物理日志
将3改为2
将4改为3
更新一条数据的过程
user_4info
review C
连接器
write pos
将2改为1
review B
执行计划生成索引选择
binlog
分析器
事务提交redo的commit状态
0
server端
是否在内存中?
获取到数据
...
8
给这行数据加1
0 条评论
下一页