- 博客(14)
- 收藏
- 关注
原创 html5本地存储器
setItem(“key”,“value”):存储名字为key的一个值value,如果key存在,就更新value。removeItem(“key”):删除名称为“key”的信息,这个key所对应的value也会全部被删除。getItem(“key”):获取名称为key的值,如果key不存在则返回null**例:标准的json对象{“name”:“john”}
2023-05-30 10:41:52
144
原创 分页查询如何优化查询
握草,我一听就觉得事情不对,肯定没好事,走过去一看,同事对我说,他维护的这张日志表数据已经超过500w了,可能是测试的同事在做压力测试,导致了数据库的用户操作日志记录一下子就突破了几百万,现在,同事写的分页查询速度已经很慢很慢了,当查询的记录越靠后的时候,查询时间越久,果不其然,没过多久,我们就在禅道上看到了测试大哥提交的bug:查看1000页以后的日志返回速度极慢,这是被迫优化啊,好尴尬。是必不可少的,可以说每干后端程序猿大部分时间都是CURD,所以分页的查询也接触的不少,你们都是怎么实现的呢?
2023-04-04 11:02:18
432
原创 Mysql - 索引为什么使用B+树而不是B树
而B树搜索有可能会在非叶子节点结束,约靠近根节点的记录查找时间越短,其性能等价于在关键字全集内做一次二分查找,查询时间复杂度不固定,与 key 在树中的位置有关,最好情况为O(1);不存储数据,只存储索引值,相比较B树来说,B+树一个节点可存储更多的索引值,使得整颗B+树变得更矮,减少I/O次数,磁盘读写代价更低,I/O读写次数是影响索引检索效率的最大因素;B+树【B树的改进版, 让内部节点(非叶子节点)只作索引使用,叶子节点包含了这棵树的所有键值,叶子节点不存储指针】
2023-03-16 15:44:35
207
原创 集合对象复制转换类型(当属性名不一样时)
List ttrList = BeanHelper.copyList(articles, ArticleIndex.class)即可。
2023-02-13 17:42:09
238
原创 MySQL中替代Like模糊查询的函数
SELECT name FROM employees where LOCATE('王',name)>0 // 相当于Like '%王%'(>0可省略)SELECT name FROM employees where INSTR(name,'王')>0 //相当于 like '%王%' (>0可省略)SELECT name FROM employees where LOCATE('王',name)=0 // 相当于 NOT Like '%王%'查询name中包含 '王' 字 的。
2023-02-02 16:36:07
1939
原创 图解用户登录验证流程
通常我们token的过期时间是根据客户端的类型来定义的,app的过期时间会更长一些(通常一个星期),web端过期时间以小时为单位,如果控制过期时间可以将web登录和app登录拆分为两个接口(能够分流,接口压力更小),或者是根据请求头信息进行判断即可,是移动端就设置7天,是web端就设置两小时。我们在网关的配置文件中增加匿名接口规则,请求到网关时,检查请求的路径是否符合匿名接口规则,是则放行,不是则进行token校验,方案比较简单,只需要对网关进行处理即可。这时候我们需要在上面的验证流程图基础上进行升级。
2023-01-29 09:31:16
666
原创 springboot整合redis
Lettuce 基于 Netty 的连接实例(StatefulRedisConnection),可以在多个线程间并发访问,且线程安全,满足多线程环境下的并发访问,同时它是可伸缩的设计,一个连接实例不够的情况也可以按需增加连接实例。Spring Boot 1.0 默认使用的是 Jedis 客户端,2.0 替换成 Lettuce。在springboot中添加启动项配置(yml或properties)两者都是来操作redis的。根据key查询value。根据key获取存活期。
2023-01-19 10:26:28
97
原创 避免 MySQL 插入重复数据的 4 种方式
即insert into …where not exist ... ,这种方式适合于插入的数据字段没有设置主键或唯一索引,当插入一条数据时,首先判断MySQL数据库中是否存在这条数据,如果不存在,则正常插入,如果存在,则忽略,前3种方式适合字段设置了主键或唯一索引,最后一种方式则没有此限制,只要你熟悉一下使用过程,很快就能掌握的,网上也有相关资料和教程,介绍的非常详细,感兴趣的话,可以搜一下。有兴趣的朋友可以关注我的公众号更多编程小技巧。
2023-01-18 11:59:35
1229
原创 Java加密配置文件
使用jasypt 进行数据库配置加密导入项目依赖版本看需求配置文件(properties)中配置文件(yml)中语法使用先将需要的明文手动加密上示已完成后直接自动注入即可使用对象的加密方法encrypt()使用对象的解密方法decrypt()得出密文后进入配置文件中。
2023-01-17 10:47:14
1089
Java中级程序员面试题(重点)
2023-01-16
调用没有编写的代码使用的是mybatis-puls
2023-05-30
mysql存储过程调用不到函数变量
2023-03-22
前端标签无法解析不知道什么原因可以告知一下非常的头疼!前端无法解析的
2023-01-03
TA创建的收藏夹 TA关注的收藏夹
TA关注的人