数据库与mybatis
文章平均质量分 68
数据库与mybatis
如来神掌十八式
这个作者很懒,什么都没留下…
展开
-
Mybatis-Plus 之【动态表名】
MybatisPlus【动态表名(这里介绍按天分表)】前言一、方案一(动态传参)使用方法(Mapper自定义SQL)二、方案二(DynamicTableNameInnerInterceptor插件)使用方法(插件配置+ThreadLocal+辅助类)三、方案三(DynamicTableNameInnerInterceptor插件、省略辅助类)使用方法(插件配置+ThreadLocal)总结注意在某些情况下,需要将大量数据分散到多个数据表中,这样可以提高数据库的查询效率和数据处理能力。原创 2024-02-24 20:34:15 · 3776 阅读 · 0 评论 -
数据库保存之Java字符串的压缩与解压缩
当字符串太长,需要将字符串值存入数据库时,如果字段长度不够,则会出现插入失败;或者需要进行Http传输时,由于参数长度过长造成http传输失败等。原创 2023-09-12 08:29:24 · 2673 阅读 · 1 评论 -
MyBatis 拦截器原理和使用方法
文章目录 1. 基础介绍1.1. 核心对象1.2. 执行过程 2. 实现步骤2.1. 添加注解2.1.1. type2.1.2. method2.1.3. args 2.2. 方法实现2.2.1. intercept2.2.2. plugin2.2.3. set...原创 2022-05-02 16:17:16 · 1937 阅读 · 0 评论 -
Springboot的Mybatis拦截器实现
MyBatis提供了一种插件(plugin)的功能,虽然叫做插件,其实就是拦截器功能 MyBatis 允许拦截的接口 MyBatis 允许你在已映射语句执行过程中的某一点进行拦截调用。默认情况下,MyBatis 允许使用插件来拦截的方法调用包括: Executor (update, query, fl...原创 2022-05-02 16:45:21 · 1276 阅读 · 0 评论 -
【转载】springboot 之 mybatis 拦截器实现(数据分表查询及保存)
已实现功能 自动创建业务分表索引表保存数据时,自动保存到最新表中查询时根据时间段查询对应时间的分表里面的记录 具体业务 当数据越来越大时,需要分时间段保存到不同的表中,查询的时候也可以根据时间段查询不同表中的记录 框架依赖 springbootmybatis plus(最新...原创 2022-05-02 16:59:15 · 1459 阅读 · 1 评论 -
MyBatis-Plus分页查询(支持自定义xml)
MyBatis-Plus使用自定义xml查询并分页 在MyBatis-Plus的基础上加载自定义的xml且分页 一、Mapper接口和xml编写 注意事项: 此处mapper接口根据官网文档 可以集成BaseMapper 也可不继承传递参数 Page 即自动分页,必须放在第一...原创 2022-05-02 16:35:05 · 6718 阅读 · 3 评论 -
mybatis 拦截器打印完整sql和sql耗时
mybatis打印完整sql实现 package com.test.interceptor; import java.lang.reflect.Field;import java.sql.Statement;import java.text.SimpleDateFormat;import java.util.Date;import java.util.List;import java.util.P...原创 2022-05-02 16:40:19 · 941 阅读 · 0 评论 -
Mybatis查询in的字段过多不走索引
这个时候可以考虑将in的数量变少, 200以内都可以, 在数据库方面采用 foreach unionall 的方式将数据集合查询出来。原创 2023-08-20 09:58:38 · 963 阅读 · 0 评论 -
Mybatis通过on duplicate key update实现批量插入或更新
(3) 相较于replace into(insert加强版,不存在时insert,存在时先delete后insert)虽然也能达到批量更新目的,但因为删除和添加需要重复维护索引,所以大批量比on duplicate key update性能要差,小量可忽略,自选为。函数用法说明:如果 expr1 是 TRUE (expr1 <> 0 and expr1 <> NULL) ,则 IF() 的返回值为 expr2;在update后面要判断参数是否为空,如果不为空进行更新,为空的就不进行更新了。原创 2023-08-20 09:36:06 · 1257 阅读 · 0 评论 -
MySQL中IN的取值范围较大时会导致索引失效
其实,意思就是虽然使用了索引,但该索引列的值并不唯一,有重复。这样即使使用索引快速查找到了第一条数据,仍然不能停止,要进行目标值附近的小范围扫描。但它的好处是它并不需要扫全表,因为索引是有序的,即便有重复值,也是在一个非常小的范围内扫描。一般来说,得保证查询至少达到range级别,最好能达到ref,type出现index和all时,表示走的是全表扫描没有走索引,效率低下,这时需要对sql进行调优。:有范围的索引扫描,相对于index的全表扫描,他有范围限制,因此要优于index。:sql所用到的索引。原创 2023-07-29 22:09:02 · 1720 阅读 · 0 评论 -
Mysql定时删除表数据
由于用户环境有张日志表每天程序都在狂插数据,导致不到一个月时间,这张日志表就高达200多万条记录,但是日志刷新较快,里面很多日志没什么作用,就写了个定时器,定期删除这张表的数据。最后把上面的语句在数据库执行一遍,大功告成,可以删除Sync_Time在497小时之前的数据了。如果不想用该定时器了的话,可以直接在数据库事件中将状态更改为ENable即可。使用navicat连接的数据库->事件->找到对应的事件修改。如果想要调整定时器执行时间间隔,可以直接在事件中修改。然后创建我们想要的定时器及删除存储过程。原创 2023-07-29 22:05:43 · 643 阅读 · 0 评论 -
MYSQL问题:order by + limit分页时数据重复
使用 priority queue 的目的,就是在不能使用索引有序性的时候,如果要排序,并且使用了limit n,那么只需要在排序的过程中,保留n条记录即可这样虽然不能解决所有记录都需要排序的开销,但是只需要 sort buffer 少量的内存就可以完成排序。因此,在limit n时,只会堆排序前n个,且是不稳定排序,因此并不能保证字段值相同时的相对顺序,因此分页时可能造成重复;如前面所描述的,分页是在数据库提供的排序功能的基础上,衍生出来的应用需求,数据库并不保证分页的重复问题。command 表结构。原创 2023-03-16 21:47:19 · 1648 阅读 · 1 评论 -
MySQL性能优化之索引设计
mysql原创 2022-10-15 10:14:57 · 469 阅读 · 1 评论 -
MySQL再深入执行计划之trace工具
mysql原创 2022-10-15 10:09:12 · 444 阅读 · 0 评论 -
Explain执行计划
mysql原创 2022-10-15 10:01:07 · 179 阅读 · 0 评论 -
【JAVA开发规范学习之 MySQL数据库】
数据库原创 2022-08-06 17:05:58 · 255 阅读 · 0 评论 -
MySql使用LEFT JOIN 的ON 后查询碰到的大坑
2原创 2022-07-10 09:14:43 · 1009 阅读 · 1 评论 -
MySql 索引失效,回表解析
2原创 2022-07-10 09:09:02 · 501 阅读 · 1 评论 -
MybatisPlus实现数据库加解密
为了保护用户隐私,我们需要对数据库用户关键数据,入库加密,取出来解密。为了我们系统自身的安全数据库连接用户名和密码都要加解密 1、数据库连接加解密 1.1、数据库连接配置 ####################...原创 2022-04-28 21:59:17 · 3717 阅读 · 2 评论 -
MySQL分页查询慢的原因及解决方案
一、背景 我们在开发的过程中使用分页是不可避免的,通常情况下我们的做法是使用limit加偏移量:select * from table where column=xxx order by xxx limit 1,20。当数据量比较小时(100万以内),无论你翻到哪一页,性能都是很快的。如果查询慢,只要在where条件和order by 的列上加上索引就可以解决。但是,当数据量大的时候(小编遇到的情况是500万...原创 2022-04-07 16:39:48 · 5370 阅读 · 2 评论 -
Sql优化
Sql优化 Sql执行顺序基础Sql优化查询SQL尽量不要使用select *,而是具体字段避免在where子句中使用or来连接条件使用varchar代替char尽量使用数值替代字符串类型查询尽量避免返回大量数据使用explain分析你SQL执行计划是否使用了索引及其扫描类型...原创 2022-03-19 22:52:45 · 585 阅读 · 0 评论 -
mysql的union和union all
1. sql中 union 和 union all 的用法 如果我们需要将两个 select 语句的结果作为一个整体显示出来,我们就需要用到 union 或者 union all 关键字。union (或称为联合)的作用是将多个结果合并在一起显示出来。 union 和 union...原创 2022-03-14 22:57:39 · 88599 阅读 · 4 评论 -
【转载】MyBatis一对多关联查询XMl配置写法
MyBatis一对多关联查询XMl配置写法 一、情景概述 1、有一张客户表 Client ,存储客户信息, 姓名 name ,年龄 age等。 2、有一张客户附件表 cl...原创 2022-03-10 22:21:22 · 1671 阅读 · 1 评论 -
【转载】Spring Boot MyBatis配置多种数据库
mybatis-config.xml是支持配置多种数据库的,本文将介绍在Spring Boot中使用配置类来配置。 1. 配置application.yml # mybatis配置mybatis: check-config-location: false type-aliases-package: ${base.package}.model configuration: map-u...原创 2022-03-10 22:07:19 · 1420 阅读 · 0 评论