mysql学习笔记

1.隔离级别

数据库的级别分成读未提交、读提交、可重复读、可串行化。

读未提交是其他事务未提交我也未提交就能读到,读提交是其他事务提交可以读到,可重复读是指在一次事务前后读到的内容一致,这需要保存一个"快照",可串行化是只只能一个一个操作。

其中比较常见的是第二个读提交和可重复读。

2.索引

数据库里建立索引是为了快速查找,对于主键id是会建立索引的,除此之外其他字段需要工程师来决定是否添加为索引(建立索引树),当在其余索引只搜索主键id的时候可以省略回主索引搜索的部分。

唯一索引是指键值不能重复的索引,显然名字不是唯一索引。

在选择的时候多数情况下选择普通索引。

3.redolog和binlog日志

分别是物理日志和归档日志,采用两阶段写的方法保证数据库在停电崩溃等情况下仍然能保存正确的内容。

4.随机选择三行

一种方法是给每行生成一个随机数,然后对随机数排序选择最小的三行对应的内容;更好的方法是rand三行来获得随机的三行。这里rand可以用行而非主键来获得。因为行在逻辑上 是连续的。

对于选择最小的三行可以使用最大堆。

总结我印象深的关键词:mysql的隔离级别、 读写锁、间隙锁;主备库和主从库

相关推荐
xuhaoyu_cpp_java1 天前
Git学习(一)
经验分享·笔记·git·学习
问心无愧05131 天前
ctf show web入门96
笔记
三品吉他手会点灯1 天前
C语言学习笔记 - 36.数据类型 - 为什么需要输出控制符
c语言·开发语言·笔记·学习
川石课堂软件测试1 天前
接口测试常见面试题及答案
python·网络协议·mysql·华为·单元测试·prometheus·harmonyos
xiaoyuchidayuma1 天前
【AnythingLLM接入硅基流动的DeepSeek R1大模型API】
笔记
吃好睡好便好1 天前
在Matlab中绘制非默认峰值图
开发语言·学习·算法·matlab
sheeta19981 天前
LeetCode 每日一题笔记 日期:2026.05.18 题目:1345. 跳跃游戏 IV
笔记·leetcode·游戏
问心无愧05131 天前
ctf show web入门98
android·前端·笔记
想七想八不如114081 天前
markdown笔记(没找到合适笔记软件,暂存)
笔记·目标检测
阳光九叶草LXGZXJ1 天前
自制数据库迁移工具-C版-07-HappySunshineV1.6-(支持PG、达梦、Gbase8a)
linux·c语言·开发语言·数据库·学习·postgresql