MySQL
文章平均质量分 94
沉着的码农
一个沉着的码农
展开
-
【MySQL】MySQL事务日志
事务有4种特性:原子性、一致性、隔离性和持久性。那么事务的四种特性到底是基于什么机制实现呢?REDO LOG 称为 重做日志 ,提供再写入操作,恢复提交事务修改的页操作,用来保证事务的持 久性。UNDO LOG 称为 回滚日志,回滚行记录到某个特定版本,用来保证事务的原子性、一致性。原创 2024-05-19 21:31:35 · 835 阅读 · 0 评论 -
【MySQL】MVCC
MVCC (Multiversion Concurrency Control),多版本并发控制。顾名思义,MVCC 是通过数据行的多个版本管理来实现数据库的 并发控制。这项技术使得在InnoDB的事务隔离级别下执行 一致性读 操作有了保证。换言之,就是为了查询一些正在被另一个事务更新的行,并且可以看到它们被更新之前的值,这样在做查询的时候就不用等待另一个事务释放锁。原创 2024-05-19 19:57:23 · 900 阅读 · 0 评论 -
【Java】从0实现一个基于SpringBoot的个人博客系统
使⽤SSM框架实现⼀个简单的博客系统共5个⻚⾯⽤⼾登录博客发表⻚博客编辑⻚博客列表⻚博客详情⻚⽤⼾登录成功后, 可以查看所有⼈的博客. 点击 可以查看该博客的正⽂内容. 如果该博客作者为当前登录⽤⼾, 可以完成博客的修改和删除操作, 以及发表新博客页面预览用户登录博客详情博客列表博客发布。原创 2024-05-09 13:01:52 · 1192 阅读 · 2 评论 -
【Mybatis】Mybatis操作数据库详解
MyBatis(前身为iBATIS)是一种Java持久层框架,用于简化数据库访问的开发。它提供了一种将SQL语句与Java代码解耦的方式,使得数据库操作更加灵活和易于维护。MyBatis的核心思想是通过XML或注解配置SQL映射关系,将SQL语句与Java方法进行关联。开发人员只需定义SQL语句,并将其映射到相应的Java方法上,MyBatis会自动执行SQL并将结果映射到Java对象中。原创 2023-11-24 13:31:58 · 816 阅读 · 0 评论 -
【MySQL】存储引擎
InnoDB是MySQL的 默认事务型引擎 ,它被设计用来处理大量的短期(short-lived)事务。可以确保事务的完整提交(Commit)和回滚(Rollback)。数据文件结构:表名.frm存储表结构,表名.ibd存储数据和索引对比MyISAM的存储引擎, InnoDB写的处理效率差一些 ,并且会占用更多的磁盘空间以保存数据和索引。MyISAM只缓存索引,不缓存真实数据;InnoDB不仅缓存索引还要缓存真实数据, 对内存要求较高 ,而且内存大小对性能有决定性的影响。原创 2023-10-22 17:48:35 · 278 阅读 · 0 评论 -
【MySQL】逻辑架构
所有的数据,数据库、表的定义,表的每一行的内容,索引,都是存在 文件系统 上,以 文件 的方式存在的,并完成与存储引擎的交互。你输入的是由多个字符串和空格组成的一条 SQL 语句,MySQL 需要识别出里面的字符串分别是什么,代表什么。在 MySQL8.0 以下的版本,如果设置了查询缓存,这时会将查询结果进行缓存。缓冲池管理器会尽量将经常使用的数据保存起来,在数据库进行页面读操作的时候,首先会判断该页面是否在缓冲池中,如果存在就直接读取,如果不存在,就会通过内存或磁盘将页面存放到缓冲池中再进行读取。原创 2023-10-22 17:30:37 · 916 阅读 · 1 评论 -
【MySQL】事务
在这个例子中**,Alice在同一个事务中进行了两次读取操作,但第二次读取的结果发生了变化,导致不一致的情况。当Bob进行查询并读取自己的账户余额时,他读取到了未提交的数据,即尚未更新的余额,导致他看到的余额仍然是旧的余额,即使实际上已经收到了Alice转账的500元。这是因为在这期间,Bob的事务插入了一个新的记录,导致在第二次查询时,结果集增加了一条记录,就好像有幻觉一样。读取Bob的账户余额,此时发生不可重复读,她读取到的余额是修改后的值,即1500元。读取Bob的账户余额,得到结果为1000元。原创 2023-07-21 07:01:20 · 96 阅读 · 0 评论 -
【MySQL】索引
例如我们要查询年龄在18岁到25岁之间的数据,我们只需要找到18岁的数据 再找到25岁的数据 根据叶子节点的双向链表就能找到18到25岁之间的所有数据。可以对表中的一列或多列创建索引,并指定索引的类型,各类索引有各自的数据结构实现。除 根结点 以外 的 非叶子结点 的子节点个数 为[ Math.ceil(M/2),M]。根据二叉树的缺陷 数据量越大 树的高度越高 那么我们有没有一种方式来降低树的高度呢?每个结点的值(索引) 都是按递增次序排列存放的,并遵循左小右大原则。在B树的基础上 又提出了B+树。原创 2023-07-19 22:54:16 · 185 阅读 · 0 评论 -
【MySQL】查询进阶
此时student表称为。原创 2023-07-19 19:37:43 · 1356 阅读 · 0 评论 -
【MySQL】创建和管理表
加上了IF NOT EXISTS关键字,则表示:如果当前数据库中不存在要创建的数据表,则创建数据表;如果当前数据库中已经存在要创建的数据表,则忽略建表语句,不再创建数据表。那么,怎样才能把用户各种经营相关的、纷繁复杂的数据,有序、高效地存储起来呢?因为从系统架构的层次上看,MySQL 数据库系统从大到小依次是 数据库服务器 、 数据库 、 数据表 、数据表的 行与列。在MySQL中,当一张数据表 没有与其他任何数据表形成关联关系 时,可以将当前数据表直接删除。可以修改列的数据类型,长度、默认值和位置。原创 2023-06-12 20:04:15 · 434 阅读 · 0 评论