- 博客(83)
- 收藏
- 关注
原创 mysql 排序、查询执行流程、幻读
MySQL的 ORDER BY 执行流程示例表和查询语句执行流程全字段排序Rowid 排序全字段排序 VS rowid排序联合索引优化覆盖索引优化小结思考题问题执行过程中是否需要排序?如何在数据库端实现不排序?实现分页需求使用`ORDER BY RAND()`内存临时表与磁盘临时表随机选择算法的优化实际应用和进一步优化小结思考题回答示例优化:误区案例一:条件字段函数操作案例二:隐式类型转换案例三:隐式字符编码转换总结优化策略行动建议为什么单行查询在My
2024-05-21 21:52:19 732
原创 MySQL前缀索引、脏页和干净页、COUNT(*)讨论、表删除内存问题
如何加索引如何给身份证号添加索引SQL语句变慢脏页 (Dirty Pages)干净页 (Clean Pages)为何区分脏页和干净页处理脏页管理策略flush如何控制为什么删除表数据后表文件大小不变问题背景核心原因数据存储方式参数影响解决方案1. 调整`innodb_file_per_table`设置2. 使用表重建来回收空间3. 定期优化表注意事项online和inplaceInplace DDLOnline DDLCOUNT(*) 讨论`COUNT(*)`
2024-05-12 21:32:32 642 1
原创 Golang内存、指针逃逸、垃圾回收机制概览
最近看到了一篇文章是关于go的内存、指针逃逸和垃圾回收机制的,发现自己并未很细致的了解过这方面的内容,于是在翻阅各种文章的情况下,写出了这篇总结,参考文章放在文末,可自取。
2024-04-19 19:08:37 1043
原创 Golang中的上下文-context包的简介及使用
Go语言中的`context`包定义了一个名为`Context`的类型,它定义并传递截止日期、取消信号和其他请求范围的值,形成一个链式模型。
2024-04-05 18:10:45 963
原创 Golang并发模型-Pipeline模型、Fan-in Fan-out模型
这段时间由于项目的需要,本人正在研究关于如何优雅的进行go的并发,以下是结合资料和视频的结果,文末会给出参考资料Go语言的并发模型主要通过goroutine和channel实现,通过这个我们可以更有效地使用IO和CPU这里我们围绕生成一个随机数并且返回他的平方数的场景来讲解。
2024-04-02 23:42:34 728
原创 MongoDB简单CRUD操作(含GO中的库操作)
入口MongoDB是一种文档数据库,它以其可扩展性和灵活性而闻名,能够满足各种查询和索引的需求。它将数据存储在类似JSON的灵活文档中,这意味着字段可能因文档而异,并且数据结构可以随时间变化。MongoDB的文档模型易于开发者学习和使用,同时具备处理任何规模复杂要求的能力。它是分布式的,因此高可用性、横向扩展和地理分布都是内置且易于使用的特性面向集合存储,易于存储对象类型的数据。模式自由,不需要预定义模式。支持动态查询,可以在任意属性上建立索引。支持复制和故障恢复,确保数据的安全性和可靠性。
2024-03-15 23:26:12 874 1
原创 WebSocket协议、与HTTP对比
WebSocket和HTTP协议一样,都是基于TCP协议实现的应用层协议。HTTP协议通常是单边通信,主要用于传输静态文档、请求-响应通信,适用于Web浏览器加载网页、API调用等。然而WebSocket则是会主动给你发消息,实现实时双向通信,我们经常玩的游戏、使用的聊天软件什么采用的都是这个协议。这里进行详细比较总的来说,WebSocket和HTTP都是网络通信中的重要协议,但它们在连接性、通信方式和应用场景等方面存在明显的区别。
2024-01-19 18:16:35 576 1
原创 JWT认证的解析和实际使用
SON Web Token(JWT)是一种开放标准(RFC 7519),定义了一种紧凑且自包含的方式,用于以JSON对象的形式在各方之间安全地传输信息。该信息可以通过数字签名进行验证和信任。JWT可以使用秘密(使用HMAC算法)或使用RSA或ECDSA的公钥/私钥对进行签名。
2023-12-20 14:41:01 135
原创 项目架构-六边形架构的概述和实现
最近在想着写一个个人项目,但是在项目的结构上却犯了难,此时翻到了一个视频,采用Hexagonal architecture(六边形架构),也被称为Ports and Adapters,大致就是下面图片的结构:一共分为三层:Domain: 里面放的是处理的基本逻辑,可以理解为大纲,它决定着Application和Framework的选择和实现Application::它协调使用我们的Domain代码, 通过位于两者之间的方式,调整从framework到domain的请求。
2023-12-07 21:56:17 406
原创 go当中的channel 无缓冲channel和缓冲channel的适用场景、结合select的使用
Go channel就像Go并发模型中的“胶水”,它将诸多并发执行单元连接起来,或者正是因为有channel的存在,Go并发模型才能迸发出强大的表达能力。
2023-11-26 20:33:53 550 1
原创 golang中的并发模型
传统的编程语言(如C++、Java、Python等)并非为并发而生的,因此它们面对并发的逻辑多是基于操作系统的线程。其并发的执行单元(线程)之间的通信利用的也是操作系统提供的线程或进程间通信的原语,比如共享内存、信号、管道、消息队列、套接字等。在这些通信原语中,使用最多、最广泛同时也最高效的是结合了线程同步原语(比如锁以及更为低级的原子操作)的共享内存方式,因此,可以说传统语言的并发模型是基于共享内存的模型。
2023-11-19 22:03:04 539
原创 golang实现极简todolist
最近跟着qimi老师做了一个ToDoList,我做的贴在这里,但由于前端出了点问题,所以都是用postman进行测试。
2023-11-05 22:40:49 428
原创 golang中的Interface接口 类型断言、接口赋值、空接口的使用、接口嵌套
Interface整理接口嵌套接口类型断言类型判断 type-switch使用方法集与接口空接口实例接口赋值给接口
2023-10-30 18:09:27 455
原创 【golang】Go中的切片slice和操作笔记,垃圾回收机制,重组 reslice ,复制和追加,内存结构
切片将切片传递给函数make() 创建一个切片new() 和 make()的区别多维切片bytes包for-range切片重组 reslice切片的复制和追加字符串、数组和切片的应用获取字符串的某一部分字符串和切片的内存结构修改字符串中的某个字符字节数组对比函数搜索及排序切片和数组append() 函数常见操作切片和垃圾回收
2023-10-24 13:13:03 427
原创 [Golang]多返回值函数、defer关键字、内置函数、变参函数、类成员函数、匿名函数
函数多返回值函数按值传递、按引用传递类成员函数改变外部变量变参函数defer和追踪说明一些常见操作实现使用`defer`实现代码追踪记录函数的参数和返回值常见的内置函数将函数作为参数闭包实例闭包将函数作为返回值计算函数执行时间使用内存缓存来提升性能
2023-10-22 21:16:00 443
原创 Git纯操作版 项目添加和提交、SSH keys添加、远程仓库控制、冲突解决、IDEA连接使用
Git项目简单克隆通用操作添加和提交回滚分支变基分支优选远程项目推送认证抓取、拉取和冲突解决IEDA类软件连接
2023-10-14 21:42:08 768
原创 【Redis学习笔记二】三种特殊数据类型、事务的基本操作、锁、持久化、发布订阅、主从复制、哨兵模式
三种特殊数据类型geospatial 地理位置Hyperloglog 基数统计Bitmaps事务基本操作悲观锁乐观锁持久化RDB(Redis Database)AOF(Append Only File)拓展Redis发布订阅命令原理缺点应用redis主从复制概念作用为什么使用集群环境配置一主二从配置使用规则复制原理哨兵模式概述测试哨兵模式优缺点哨兵模式的全部配置
2023-10-07 20:10:06 171
原创 【Redis】五大数据类型 、历史概述、nosql分类
NoSql概述NoSql年代缓存 Memcached + MySQL+垂直拆分(读写分离)分库分表+水平拆分+Mysql集群最近为什么要用NoSqlNoSql的四大分类Redis测试性能五大数据类型keyStringSetHashZset
2023-10-02 22:49:51 474 1
原创 Docker 容器技术 (上) 环境安装和部署、容器镜像、使用IDEA构建Springboot程序镜像、远程仓库、容器网络管理
Docker容器技术容器技术入门环境安装和部署从虚拟机到容器容器工作机制简述容器与镜像初识容器镜像镜像结构介绍构建镜像发布镜像到远程仓库实战:使用IDEA构建SpringBoot程序镜像容器网络管理容器网络类型用户自定义网络容器间网络容器外部网络
2023-09-28 21:54:40 859
原创 【Java】SpringData JPA快速上手,关联查询,JPQL语句书写
JPA框架认识SpringData JPA使用JPA快速上手方法名称拼接自定义SQL关联查询JPQL自定义SQL语句
2023-09-15 20:38:30 1546
原创 MybatisPlus框架教程:入门、条件构造器、接口操作、代码生成器
前面我们体验了JPA带来的快速开发体验,但是我们发现,面对一些复杂查询时,JPA似乎有点力不从心,反观稍微麻烦一点的Mybatis却能够手动编写SQL,使用起来更加灵活,那么有没有一种既能灵活掌控逻辑又能快速完成开发的持久层框架呢?(简称 MP)是一个的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。MybatisPlus的愿景是成为 MyBatis 最好的搭档,就像中的 1P、2P,基友搭配,效率翻倍。
2023-09-06 17:11:03 160
原创 SpringSecurity(6.1.x版本) 认证,授权,自定义登录,内部机制探讨
SpringSecurityCSRF跨站请求伪造攻击SFA会话固定攻击XSS跨站脚本攻击开发环境搭建认证直接认证使用数据库认证自定义验证其他配置自定义登录界面记住我功能授权基于角色授权基于权限授权使用注解权限判断内部机制探究授权校验流程安全上下文安全上下文持久化过滤器
2023-07-18 20:30:01 1325
原创 【redis】数据类型,持久化、事务和锁机制、Java和redis交互、使用redis缓存、三大缓存问题
Redis数据库NoSQL概论Redis安装和部署基本操作数据操作数据类型介绍HashListSet和SortedSet持久化RDBAOF事务和锁机制锁使用Java与Redis交互基本操作SpringBoot整合Redis使用Redis做缓存Mybatis二级缓存Token持久化存储三大缓存问题缓存穿透缓存击穿缓存雪崩
2023-06-14 22:26:33 1158
原创 【SpringSecurity】CSRF、环境配置、授权、认证功能、记住我功能实现
SpringSecurityCSRF跨站请求伪造攻击开发环境搭建认证直接认证使用数据库认证自定义登录界面授权基于角色的授权基于权限的授权使用注解判断权限记住我SecurityContext
2023-06-08 23:37:39 803
原创 二叉树基础知识&力扣题构造二叉树总结
如何理解二叉树,This is a question!作者在去年被布置要求学习二叉树时对二叉树的理解并不是很深刻,甚至可以说是绕道走,但是Luck of the draw only draws the unlucky,在学期初考核时,作者三道二叉树题都没做出来,连最简单的创建都忘记了,当时想着提升,却拖到了现在;这篇文章可以说是作者二叉树算法实战经验总结。
2023-06-05 22:43:02 545
原创 [SpringMVC]Controller控制器、Interceptor拦截器、RestFul风格、异常处理、JSON数据格式与AJAX请求
拦截器是整个SpringMVC的一个重要内容,拦截器与过滤器类似,都是用于拦截一些非法请求,但是我们之前讲解的过滤器是作用于Servlet之前,只有经过层层的拦截器才可以成功到达Servlet,而拦截器并不是在Servlet之前,它在Servlet与RequestMapping之间,相当于DispatcherServlet在将请求交给对应Controller中的方法之前进行拦截处理,它只会拦截所有Controller中定义的请求映射对应的请求(不会拦截静态资源),这里一定要区分两者的不同。
2023-06-05 22:32:37 706
原创 【Spring】javaBean、依赖注入、面向切面AOP、使用注解开发
JavaBeanIoC理论基础使用IoC容器使用Spring生命周期与继承生命周期继承依赖注入 Dependency Injection基本类型注入非基本类型注入集合注入自动装配注入面向切面AOP使用SpringAOP环绕方法使用接口实现AOP使用注解开发注解实现配置文件注解实现AOP操作其他注解配置
2023-06-03 22:54:15 1465 6
原创 深入Mybatis框架:解读数据源的实现,整合MyBatis框架,事务管理,集成JUnit测试
前面已经了解了JavaBean的创建和注入到IoC容器中,接下来深入MyBatis框架。
2023-06-02 22:26:20 518
原创 [Java Web]Cookie,Session,Filter,Listener,Thymeleaf模板
CookieSessionFilterListener了解JSP页面与加载规则使用Thymeleaf模板引擎Thymeleaf语法基础为标签添加内容Thymeleaf流程控制语法Thymeleaf模板布局提取重复内容参数传递探讨Tomcat类加载机制
2023-05-31 22:26:04 576
原创 力扣 1775.通过最少操作次数使数的和相等、1014.最佳观光组合、33.搜索旋转排序数组
在做题过程中经常会遇到一些问题,最常见的便是时间复杂度的不理想、符号公式的积累不够深,因此作者把遇到的问题整理出来,从自己的思路,再到题解的思路,以及补充的知识三个方面来分享一些算法题。回到正题,该函数的计数器,记录的是弹性值,因为h1[i]中的i代表的是数组里的数值,所以记录他最多能增加/减少多少,之后的循环就从最大弹性值开始一步步减,最后得出结果。再之后的思路,因为要操作次数最少,那必然是数组中被操作的那个数弹性很大,也就是和大的数组先调整最大的数,和小的数组先调整最小数。因此这就是我们的判断条件。
2023-05-25 19:57:57 557
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人