
MySQL
文章平均质量分 85
夜光下丶
新人初学,请多指教!
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
MySQL 存储结构
多个页可以不在物理结构上相连,只通过双向链表相关联即可。每个数据页中的记录会按照主键值从小到大的顺序组成一个单向链表,每个数据页都会为存储在它里边的记录生成一个页目录。通过主键查找某条记录时可以在页目录中使用二分法快速定位到对应的槽,然后再遍历该槽对应分组中的记录即可。原创 2024-10-23 11:26:25 · 1358 阅读 · 0 评论 -
InnoDB引擎
当我们在一个事务中,执行多个增删改的操作时,InnoDB引擎会先操作缓冲池中的数据,如果缓冲区没有对应的数据,会通过后台线程将磁盘中的数据加载出来,存放在缓冲区中,然后将缓冲池中的数据修改,修改后的数据页我们称为脏页。重做日志,是用来实现事务的持久性。这时问题来了,假设在某一次从内存刷新到磁盘的过程中,一个「页」刷了一半,突然操作系统或者 MySQL 进程奔溃了,这时候,内存里的页数据被清除了,而磁盘里的页数据,刷了一半,处于一个中间状态,不尴不尬,可以说是一个「不完整」,甚至是「坏掉的」的页。原创 2024-10-23 15:16:59 · 722 阅读 · 0 评论 -
MySQL 索引
官方定义: 一种帮助MySQL提高查询效率的数据结构一般来说索引本身也很大,不可能全部存储在内存中,因此索引往往是存储在磁盘上的文件中的(可能存储在单独的索引文件中,也可能和数据一起存储在数据文件中)我们通常所说的索引,包括聚集索引、覆盖索引、组合索引、前缀索引、唯一索引等,没有特别说明,默认都是使用B+树结构组织(多路搜索树,并不一定是二叉的)的索引存储引擎层实现的,而不是在服务器层实现的,所以不同存储引擎具有不同的索引类型和实现。原创 2024-10-23 20:25:24 · 1424 阅读 · 0 评论 -
Mybatis常用标签
trim 元素的主要功能是可以在自己包含的内容前加上某些前缀,也可以在其后加上某些后缀,与之对应的属性是 prefix 和 suffix;可以把包含内容的首部某些内容覆盖,即忽略,也可以把尾部的某些内容覆盖,对应的属性是 prefixOverrides 和 suffixOverrides;正因为 trim 有这样的功能,所以我们也可以非常简单的利用 trim 来代替 where 元素的功能。set 元素会动态地在行首插入 SET 关键字,并会删掉额外的逗号(这些逗号是在使用条件语句给列赋值时引入的)原创 2022-11-27 17:44:51 · 240 阅读 · 0 评论 -
MySQL 之 InnoDB存储引擎(二)
事务是MySQL区别于NoSQL的重要特征,是保证关系型数据库数据一致性的关键技术。事务可看作是对数据库操作的基本执行单元,可能包含一个或者多个SQL语句。这些语句在执行时,要么都执行,要么都不执行。:语句要么全执行,要么全不执行,是事务最核心的特性,事务本身就是以原子性来定义的。实现主要基于undo log日志。:保证事务提交后不会因为宕机等原因导致数据丢失。实现主要基于redo log日志。:保证事务执行尽可能不受其他事务影响。原创 2022-11-14 18:52:29 · 392 阅读 · 0 评论 -
MySQL 之 InnoDB存储引擎(一)
InnoDB的逻辑存储结构如下图所示: 表空间是 InnoDB存储引擎逻辑结构的最高层,如果用户开启了参数 `innodb_file_per_table`(在8.0中默认开启),则每张表都会有一个表空间(xxx.ibd),一个MySQL实例可对应多个表空间,用于存储记录、索引等数据。段,又分为数据段(Leaf node segment)、索引段(Non-leaf node segment)、回滚段(Rollback segment),InnoDB是索引组织表,数据段就是 B+ 树的叶子节点,索引段就是 B原创 2022-11-14 09:40:25 · 1345 阅读 · 0 评论 -
MP查询条件
MP常见方法原创 2022-07-21 20:05:47 · 3247 阅读 · 0 评论 -
MySQL模糊查询详解
ICP原创 2022-06-18 15:07:56 · 2631 阅读 · 0 评论 -
MyBatis的参数映射
MyBatis的参数映射不同于字段映射,参数映射中的"参数"是指传入SQL语句的参数,而字段映射指的是将JDBC ResultSets数据映射成JavaBean。MyBatis的参数映射配置MyBatis的参数映射利用的属性是:parameterType。parameterType,将会传入这条语句的参数的类全限定名或别名。这个属性是可选的,因为 MyBatis 可以通过类型处理器(TypeHandler)推断出具体传入语句的参数,默认值为未设置(unset)基本类型只含或者.原创 2022-01-08 20:12:03 · 2172 阅读 · 0 评论 -
Mybatis中@Param的用法和作用详解
@Param用于dao层,是mybatis中的注解使得mapper.xml中的参数与后台的参数对应上,也增强了可读性如果两者参数名一致得话,spring会自动进行封装,不一致的时候就需要手动去使其对应上。即:用注解来简化xml配置的时候,@Param注解的作用是给参数命名,参数命名后就能根据名字得到参数值,正确的将参数传入sql语句中 。 在方法只接受一个参数的情况下,可以不使用@Param。 在方法接受多个参数的情况下,建议一定要使用@Param注解给参数命名。 如果参数原创 2021-11-29 23:19:01 · 21638 阅读 · 5 评论 -
Mybatis插入时返回生成的主键
当插入数据之后,mybatis再次查询mysql数据库,获得了注解id,然后填充到person对象的id属性的。在定义xml映射器时设置属性useGeneratedKeys值为true,并分别指定属性keyProperty和keyColumn为对应的数据库记录主键字段与Java对象的主键属性。 <insert id="insertHuman" parameterType="Human" useGeneratedKeys="true" keyProperty="id" keyColumn="i原创 2021-11-25 14:30:24 · 1569 阅读 · 0 评论 -
Mybatis批量插入
三种批量插入的方式循环插入 foreach标签 批处理数据库和实体类package com.yang.model;/** * Mybatis批量插入测试实体类 * * @Author: chenyang * @Date: 2021/11/25 12:33 */public class Person { /** * 用户名 */ private String name; /** * 用户密码 */.原创 2021-11-25 14:17:52 · 901 阅读 · 0 评论 -
MySQL 视图
视图在数据库中的作用类似于窗户,用户可以通过这个窗口看到只对自己有用的数据。既保障了数据的安全性,又大大提高了查询效率。MySQL 视图(View)是一种虚拟存在的表,同真实表一样,视图也由列和行构成,但视图并不实际存在于数据库中。行和列的数据来自于定义视图的查询中所使用的表,并且还是在使用视图时动态生成的。数据库中只存放了视图的定义,并没有存放视图中的数据,这些数据都存放在定义视图查询所引用的真实表中。使用视图查询数据时,数据库会从真实表中取出对应的数据。因此,视图中的数据是依赖于真实表中的数据的原创 2021-10-06 23:11:33 · 288 阅读 · 0 评论 -
MySQL索引
什么是索引目录什么是索引索引类型主键索引单列索引唯一索引复合索引索引的数据结构Hash表二叉查找树平衡二叉树B树:改造二叉树B+树:改造B树索引的底层原理聚簇索引二级索引复合索引索引优化索引实现MyIsam索引InnoDB索引 官方定义: 一种帮助mysql提高查询效率的数据结构 更通俗的说,数据库索引好比是一本书前面的目录,能加快数据库的查询速度。 一般来说索引本身也很大,不可能全部存储在内存中,原创 2021-10-06 22:51:22 · 565 阅读 · 0 评论