SQL
文章平均质量分 89
做猪呢,最重要的是开森啦
哈哈哈干活
展开
-
关于Mybatis-Plus报错 Not Found TableInfoCache 解决办法
【代码】关于Mybatis-Plus报错 Not Found TableInfoCache 解决办法。原创 2024-03-06 22:53:50 · 1129 阅读 · 0 评论 -
MySQL死锁案例分析及避免办法
死锁就是两个以上线程互相竞争资源导致相互等待的现象发生死锁有四个条件:互斥、请求与保持条件、不可抢占、循环等待。原创 2024-03-14 21:44:35 · 807 阅读 · 0 评论 -
RR级别为什么不能完全解决幻读案例分析 | 什么是MCVV
【代码】RR级别为什么不能完全解决幻读案例分析 | 什么是MCVV。原创 2024-03-20 21:14:15 · 593 阅读 · 0 评论 -
一些有的没得小知识
【代码】一些有的没得小知识。原创 2023-03-19 21:10:16 · 225 阅读 · 1 评论 -
Mybatis源码(3) - Executor执行过程 | 一级缓存 | 二级缓存
Mybatis源码(1) - SpringBoot整合Mybatis的核心原理Mybatis源码(2) - SqlSessionTemplate的介绍及创建过程之前的文章介绍之后,我们知道SQL语句最终通过DefaultSqlSession的执行器Executor进行操作,默认是CachingExecutor接下来看看如何进行JDBC数据库操作的。原创 2023-02-16 20:51:46 · 527 阅读 · 0 评论 -
Mybatis源码(2) - SqlSessionTemplate的介绍及创建过程 | DefaultSqlSession的创建过程
众所周知😏:MyBatis通过SqlSessionFactory 创建SqlSession去调用Executor执行器进行JDBC数据库操作SqlSession在Mybatis中有DefaultSqlSession、SqlSessionManagger两种实现,其中SqlSessionManagger是线程安全的是Mybatis为了接入Spring提供的Bean,也是SqlSession的实现,并且是线程安全的关于DefaultSqlSession为什么不是线程安全可以参考链接。原创 2023-02-14 22:41:24 · 1180 阅读 · 0 评论 -
Mybatis源码(1) - SpringBoot整合Mybatis的核心原理
SpringBoot整合Mybatis只需添加mybatis-spring-boot-starter的依赖(本文版本2.2.0,对应mybatis版本3.5.7),然后yml进行配置即可本文对Mybatis一些底层原理进行探究,主要是一些自动配置以及Mapper代理对象的生成过程。原创 2023-02-09 21:55:46 · 1853 阅读 · 0 评论 -
MySQL中批量更新 | case when 进行数据批量更新
【代码】MySQL中批量更新 | case when 进行数据批量更新。原创 2023-02-01 21:19:30 · 2573 阅读 · 0 评论 -
MYSQL锁机制 - 锁的简述 | 索引对行级锁的影响
MYSQL锁机制 - 锁的简述 | 索引对行级锁的影响原创 2022-08-17 16:31:31 · 614 阅读 · 0 评论 -
MySQL(3) -- 索引相关的一些问题 | 为什么使用B+树结构 | 能存储多少数据 等等
0. 什么是索引,有什么优缺点?1. MySQL索引为什么使用B+树的数据结构? 1.1. 为什么不使用hash结构 1.2. 为什么不使用红黑树等二叉树结构 1.3. 为什么不使用B树结构 1.4. 索引为什么使用B+树结构2. MySQL能存储多少数据?3. 什么是回表 | 索引覆盖 | 索引下推 | 最左前缀原则?4. 非聚簇索引一定会回表么?5. 联合索引使用时要注意什么?6. MyISAM和InnoDB有什么区别?7. 为什么建议InnoDB表建主键,并且推荐使用整型自增id作主键?8. 主键索.原创 2021-05-17 22:56:03 · 394 阅读 · 2 评论 -
MySQL(2) -- 回表 | 索引覆盖 | 索引下推 | 最左前缀原则 介绍
具体原理需要对索引数据结构有所了解,不懂的可以先参考索引数据结构介绍1. 回表: 在查询数据过程,根据辅助索引的叶子节点存储的主键,去主键索引的B+树上再进行数据检索的过程,称之为回表` 使用上尽量避免回表查询2. 索引覆盖: 索引的B+树上包含了所要查询的所有字段,此时不需要再回表查询,这个过程称之为索引覆盖,推荐使用索引覆盖比如table表有a,b,c,d,e个字段,其中a是主键,另外有一联合索引idx_bcd (b,c,d)查询select * from table .原创 2021-05-12 22:10:56 · 326 阅读 · 0 评论 -
MySQL(1) -- 存储引擎和索引数据结构介绍 | InnoDB索引原理 | 联合索引数据结构 | 聚簇索引
1. 存储引擎:2. 索引文件: 2.1. MyISAM的索引文件: 2.2. InnoDB的索引文件:3. 索引类型: 3.1. 主键索引(Primary Key): 3.2. 二级索引(辅助索引):4. 索引数据结构: 4.1. MyISAM索引实现: 4.2. InnoDB 索引实现:1. 存储引擎: 存储引擎是不同数据文件在磁盘上的不同组织形式MySQL 5.5 之前,MyISAM 引擎是 MySQL 的默认存储引擎MySQL 5.5 之后,MySQL 引入了 InnoDB(事务性数.原创 2021-05-06 23:03:08 · 526 阅读 · 1 评论 -
MySQL(0) -- Explain执行计划基本介绍及栗子
0. 表创建1. id列2. select_type 列 2.1. simple 2.2. primary 2.3. subquery 2.4. derived 2.5. union 2.6. union result3. table列4. type列(重要) 4.1. NULL 4.2. const和system 4.3. eq_ref 4.4. ref 4.5. range 4.6. index 4.7. ALL5. possible_keys列和key列(重要)6. key_len列(重要)7. r.原创 2021-05-05 21:42:43 · 689 阅读 · 2 评论 -
MySQL存储过程创建例子
1. 无参数输入的存储过程:DELIMITER $$DROP PROCEDURE IF EXISTS `testUser`;CREATE PROCEDURE testUser()BEGIN SELECT * FROM `user` WHERE name = 'zz';END $$DELIMITER ;//调用CALL testUser(); 【说明】:SQL 语句默认是以分号作为语句结束标志,DELIMITER $$则将语句结束标志改为$$,保证存储过程的完整, 因为存储过程中可原创 2020-10-10 21:33:45 · 803 阅读 · 0 评论 -
Mybatis中#{}和${}使用的区别
区别: #{}:以预编译的方式传入,可以防止sql注入 ${}:以内容拼接的方式传入,存在sql注入的安全隐患。举个栗子: <select id="phoneByIdStr" resultType="Model.PhoneModel" parameterType="String"> select * from test where brand_id=#{id} </select原创 2020-05-08 20:54:32 · 191 阅读 · 0 评论 -
Oracle的外连接join以及on条件里面add和where后面的add区别
外连接返回的结果,除了包含满足连接条件的记录,还包括不满足连接条件。举个栗子: 在Oracle中自带的SCOTT用户表中,DEPT部门表有部门编号40的部门,EMP员工没有40部门的员工。select * from emp e right join dept d on e.deptno=...原创 2020-05-04 15:05:29 · 710 阅读 · 0 评论 -
SQL中EXISTS理解使用
EXISTS使用,不喜勿喷...原创 2019-04-23 13:15:46 · 56754 阅读 · 22 评论