MySQL
文章平均质量分 69
记录SQL学习
Lemon Aourase
这个作者很懒,什么都没留下…
展开
-
【MySQL】MVCC机制
隐藏字段undo log 版本链readView我们存储的数据会默认也存储两个隐藏字段,分别为当前修改的事务 id 和 roll_pointer 回滚指针undo log 是回滚日志,存储老版本的数据。多个事务操作某一行数据,记录不同事务修改数据的版本,通过回滚指针形成的链表叫做 undo log 版本链readView 解决了事务查询选择版本的问题,根据 readView 的匹配规则和当前事务 id 判断该访问哪个版本的数据。不同隔离级别 readView 是不一样的,最终访问结果也是不同的。原创 2024-02-29 18:46:32 · 939 阅读 · 0 评论 -
【MySQL】redo log和undo log
redo log 是重做日志,记录的是事务提交时数据页的物理修改,用来实现事务的持久性redo log 由两部分组成:重做日志缓冲(redo log buffer)和重做日志文件(redo log file)。前者是在内存中,后者在磁盘中。当事务提交后会把所有修改信息存到该日志文件中,用于刷新脏页(内存中修改过的文件叫做脏页)到磁盘,发生错误时进行数据恢复使用。原创 2024-02-28 13:42:20 · 1060 阅读 · 0 评论 -
MySQL中json_set()函数的使用
json_set()这个函数在我看来,好像具备两个作用,一个是插入作用,能替代json_insert()函数,另一个就是替换作用,能替代json_replace()函数。下面具体来看:插入作用:数据库中 id =16的数据如下所示:使用json_insert()函数后,如下所示,插入了age:30接下来使用json_set()函数,向 id =16的data中添加hobby,(注:这里可能有些伙伴会好奇,上面添加了age,我再添加一个hobby,为什么age不见了,这是因为我用的是select原创 2021-06-29 15:13:15 · 9901 阅读 · 0 评论 -
MYSQL中带有JSON类型的表
MYSQL中带有JSON类型的表最近实训期间学会了一些关于MySQL json的东西,就随笔记下,以后用到随时可用。用老师的话来讲就是,对于关系型数据库中的表来说,通常都会有一列为主键列,主键可以完全代表这一行记录,两列足够,真正的数据是json列。主键还分为业务主键和自然主键(与行信息无关,也就是1,2,3,4,5,6…),通常用自然主键比较多;主键列类型分为整数(从1开始自增)和字符串。下面就是一些创建表,以及插入的操作创建id号自增的表aa:插入数据到表aa中:insert into原创 2021-06-29 11:06:27 · 486 阅读 · 0 评论