![](https://img-blog.csdnimg.cn/20190918140145169.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
数据库框架
文章平均质量分 61
该栏主要介绍链接数据库中间件以及sql的优化方法
信仰_273993243
热爱技术热爱生活,希望大家共同进步
展开
-
mysql汇总
mysql基础理论,及undolog和redolog、mvcc等。原创 2023-11-01 16:08:03 · 214 阅读 · 0 评论 -
mybatis的简单执行流程-面试用
XMLConfigBuilder调用parse()方法解析Mybatis配置文件,生成Configuration对象通过Session来得到UserMapper.java类的代理对象。每一个Mapper文件都有一个对应的MapperProxyFactory,为什么需要MapperProxyFactory。原创 2023-10-19 12:05:06 · 314 阅读 · 0 评论 -
Mybatis执行器BatchExecutor、ReuseExecutor、SimpleExecutor介绍
这里说下Executor接口和他的子类之间的关系BaseExecutor有三个实现类BatchExecutor、ReuseExecutor、SimpleExecutor是并列关系。原创 2023-10-18 10:57:11 · 537 阅读 · 0 评论 -
mybatis一级缓存和二级缓存
一级缓存的实现类,里面其实就是一个HashMap没有过多的并发设计。key是一个Object,他的类型是CacheKey,所以在Map里面put或者get操作时,CacheKey的HashCode方法和equals就很重要了。因为HahsMap源码里面针对Hash碰撞和数据覆盖就会用到这个2个方法。//Key的设计:CacheKey,很多属性//哈希码存到Map里面会用到,这个也是提前生成好的。//总和校验,当出现复合key的时候,分布计算每个key的哈希码,然后求总和//list的数量。原创 2023-10-17 22:01:28 · 114 阅读 · 0 评论 -
mysql表被锁了怎么办? error:1205 - Lock wait timeout exceeded; try restarting transaction
锁数据库转载 2023-03-03 16:43:28 · 2146 阅读 · 1 评论 -
mysql常用操作语法、增删索引、增删改字段、增删改语法
mysql、添加索引、新增字段、更新语句、删除索引、修改字段、DEFAULT NULL原创 2023-02-23 23:43:21 · 3080 阅读 · 0 评论 -
mybatis-PageHelper的分页原理
PageHelper分页原理原创 2022-06-13 22:33:36 · 422 阅读 · 0 评论 -
mysql-存储引擎-MERGE
一、MySQL MERGE存储引擎merge存储引擎是一组myisam表的集合。这些myisam表的结构必须完全相同。对merge表进行的操作实际是对myisam表的操作。但是删除merge表并不会影响内部的myisam 表。注意:文件格式有 .frm .MRG二、使用案例使用MERGE存储引擎,解决分表数据分页查询的问题。1、创建三张表,分别为user_1,user_2,user_3CREATE TABLE `user_1` (。。。)ENGINE = MYISAM DEFAULT C转载 2022-03-02 17:34:10 · 447 阅读 · 0 评论 -
分布式事务解决方案
一、分布式事务分布式事务是指事务的参与者、支持事务的服务器、资源服务器以及事务管理器分别位于不同的分布式系统的不同节点之上。二、2PC1、准备阶段协调者会给各参与者发送准备命令,你可以把准备命令理解成除了提交事务之外啥事都做完了。2、同步等待所有资源的响应之后就进入第二阶段即提交阶段(注意提交阶段不一定是提交事务,也可能是回滚事务)。3、假如在第一阶段所有参与者都返回准备成功,那么协调者则向所有参与者发送提交事务命令,然后等待所有事务都提交成功之后,返回事务执行成功。三、2PC的问题1、假如在转载 2022-03-02 17:29:02 · 101 阅读 · 0 评论 -
mysql面试-分库分表
一、mysql分库分表查询,不带分表键,且不是看第三页1、全量查在通过内存分页因为不清楚按照时间排序之后的第三页数据到底是如何分布在数据库上的,所以必须每个库都返回3页数据,所得到的6页数据在服务层进行内存排序,得到全局视野,再取第3页数据。缺点:有性能瓶颈,如果查询偏移量过大的分页会导致数据库获取数据性能低下2、业务折中禁止跳页查询,不提供“直接跳到指定页面”的功能,只提供下一页的功能。极大的降低技术方案的复杂度。第一页的选取方法和全局视野法一样,但是点击下一页时记住上一页最后一条数据的作为第二原创 2022-03-02 17:13:43 · 3730 阅读 · 1 评论 -
mysql-查询优化总结
一、limit查询慢的问题针对下面慢查询语句有什么优化方法select * from table limit 100000,10MySQL并不是跳过offeset行,而是取offset+N行,然后返回放弃前offset行,返回N行,那当offset特别大的时候,效率就非常的底下,要么控制返回的总页数,要么对超过特定阈值的页数进行SQL改写。1、设计优化建立索引,触发索引。当一个数据库表过于庞大,LIMIT offset, length中的offset值过大,则SQL查询语句会非常缓慢,你需增加转载 2022-02-09 16:46:43 · 185 阅读 · 0 评论 -
mysql-索引-组合索引的最左匹配原则
为何要使用组合索引呢效率高,减少查询开销,索引列越多,通过索引筛选出的数据越少覆盖索引,MySQL可以直接通过遍历索引取得数据,而无需回表,这减少了很多的随机io操最左匹配原则是什么顾名思义,就是最左优先,在创建组合索引时,要根据业务需求,where子句中使用最频繁的一列放在最左边。复合索引很重要的问题是如何安排列的顺序,比如where后面用到c1, c2 这两个字段,那么索引的顺序是(c1,c2)还是(c2,c1)呢,正确的做法是,重复值越少的越放前面,比如一个列 95%的值都不重复,那么一般原创 2022-02-09 14:21:23 · 1332 阅读 · 0 评论 -
连接库连接数查询以及kill指定连接
查询数据库连接数量,kill数据库不需要的连接转载 2021-12-30 09:04:35 · 392 阅读 · 0 评论 -
分库分表实现
分库分表中间件1、Mycat2、Sharding-sphere原创 2021-12-19 21:35:21 · 79 阅读 · 0 评论 -
mybatis基础知识
Xml中遍历List<if test="list != null and list.size() > 0"> and status in <foreach collection="list" index="index" item="item" open="(" separator="," close=")"> #{item,jdbcType=VARCHAR} </foreach></if>resultTyp原创 2021-10-17 10:40:53 · 108 阅读 · 0 评论 -
mybatis小知识
在mapper文件中书写判断有个参数是否等于某个值<!-- 正确的,稳定,推荐使用 --><if test="newsImage != null and newsImage == '1'.toString()"> <![CDATA[ and len(newsImage) > 0 ]]></if><!-- 正确的,稳定,推荐使用 --><if test="newsImage != null and newsImage ==原创 2021-08-21 22:35:24 · 499 阅读 · 0 评论 -
MyBatis框架的使用及源码分析(二) 配置篇 SqlSessionFactoryBuilder,XMLConfigBuilder
在上一篇文章(MyBatis框架的使用及源码分析(一))的demo中看到了SessionFactory的创建过程:String resource = "mybatis-config.xml";InputStream inputStream = Resources.getResourceAsStream(resource);SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);转载 2020-07-10 19:02:29 · 218 阅读 · 0 评论 -
MyBatis框架的使用及源码分析(一) 使用与配置
注意:本《MyBatis框架的使用及源码分析》素有章节只单纯地描述mybatis源码,不涵盖mybatis-spring的源码。1、我们先来看一个例子,简单的了解一下mybatis的mapper接口方式的使用。import org.apache.ibatis.io.Resources;import org.apache.ibatis.session.SqlSession;import org.apache.ibatis.session.SqlSessionFactory;import org转载 2020-07-10 18:25:27 · 152 阅读 · 0 评论 -
mybatis自定义日志实现类
在使用mybatis,有时候,我们会选择自己的日志类,那么针对mybatis日志选择,如果要使用我们自定义的。1、实现org.apache.ibatis.logging.Log接口。public class TestLog implements org.apache.ibatis.logging.Log { public TestLog(){ System.out.println("wucan"); } Logger logger = null;原创 2020-05-24 20:10:35 · 1019 阅读 · 0 评论 -
02、mybatis-spring开启事务
本文主要介绍mybatis-spring如何开始事务。什么是事务,抄了一段网上的解释:事务(Transaction)是并发控制的单位,是用户定义的一个操作序列。这些操作要么都做,要么都不做,是一个不可分割的工作单位。通过事务,能将逻辑相关的一组操作绑定在一起,以便服务器保持数据的完整性。主要用于一些对操作过程的完整性比较高的程序。比如银行系统,用户在转账权的过程中程序出现错误,但是这个转账操作没有完成。那么这个操作就被退回。就是为了保证业务的一致性,要吗都成功,如果有一个失败,那其他成功的就应该回滚原创 2020-05-08 19:50:26 · 1432 阅读 · 1 评论 -
01、spring整合mybatis简单Demo
一、内容介绍本文主要以为注解的方式来实现spring和mybatis的整合,做到尽量精简不依赖过多的jar,希望给学习的小伙伴提供一些帮助。二、本文分类1、pom.xml文件2、User实体类3、Mapper接口4、AppConfig5、Service业务类6、Test7、目录结构三、pom.xml<!--spring-core-->&l...原创 2020-05-07 16:58:55 · 243 阅读 · 0 评论