- 博客(16)
- 收藏
- 关注
原创 SQL 优化经历:从 30248.271s 到 0.001s
将会更高,从另外一个角度看,该表的数据是300w,以后会更多,就索引存储而言,都是不小的数目,随着数据量的增加,索引就不能全部加载到内存,而是要从磁盘去读取,这样索引的个数越多,读磁盘的开销就越大,因此根据具体。发现没有用到索引,type全是ALL,那么首先想到的就是建立一个索引,建立索引的字段当然是在where条件的字段。快了3w多倍,大大缩短了查询时间,看来索引能极大程度的提高查询效率,建索引很有必要,很多时候都忘记建。的结果是897,即这两个字段联合起来的区分度是比较高的,因此建立联合索引查询效率。
2024-12-03 13:24:32
1025
原创 Nginx配置限流,技能拉满!
限流(Rate Limitting)是服务降级的一种方式,通过限制系统的输入和输出流量以达到保护系统的目的。比如我们的网站暴露在公网环境中,除了用户的正常访问,网络爬虫、恶意攻击或者大促等突发流量都可能都会对系统造成压力,如果这种压力超出了服务器的处理能力,会造成响应过慢甚至系统崩溃的问题。因此,当并发请求数过大时,我们通过限制一部分请求(比如限制同一IP的频繁请求)来保证服务器可以正确响应另一部分的请求。nginx 提供了两种限流方式,一种是限制请求速率,一种是限制连接数量。
2024-12-03 13:14:56
1633
原创 8种专坑同事 SQL写法,性能降低100倍,不来看看?
数据库编译器产生执行计划,决定着SQL的实际执行方式。但是编译器只是尽力服务,所有数据库的编译器都不是尽善尽美的。上述提到的多数场景,在其它数据库中也存在性能问题。了解数据库编译器的特性,才能避规其短处,写出高性能的SQL语句。程序员在设计数据模型以及编写SQL语句时,要把算法的思想或意识带进来。编写复杂SQL语句要养成使用 WITH 语句的习惯。简洁且思路清晰的SQL语句也能减小数据库的负担。
2024-12-03 13:11:07
1046
原创 彻底告别 Controller、Service、Dao,让人上瘾的开发神器
"Rocket-API" 基于 SpringBoot 的 API 敏捷开发框架,服务端50%以上的功能只需要写SQL或者 mongodb原始执行脚本就能完成开发。另外30%也在不停的完善公共组件,比如文件上传,下载,导出,预览,分页等等通过一二行代码也能完成开发,剩下的20%也能依赖于动态编译技术生成class的形式,不需要发布部署,不需要重启来实现研发团队的快速编码,提测以及回归。实现了服务端研发效率300%-500%的提升,人力成本减少了3倍。
2024-11-21 18:33:36
1140
原创 小白教程-个人电脑搭建服务器
昨天我说我有三台电脑,有一台屏幕坏了,安装了远程软件RustDesk自建服务,实现了局域网内部远程控制;今天来搭建一个web服务器,可以做个人网站,博客,音视频家庭影院等
2024-11-20 18:10:32
3982
原创 五款开源 React 组件库新鲜上架
React 自 2013 年由 Facebook 推出以来,迅速成为前端开发领域的主流框架之一,被广泛应用于各类 Web 应用的开发中。React 不仅在技术层面上具有强大的竞争力,其庞大的生态系统和社区支持也为开发者提供了丰富的资源,各类 React 组件库已成为开发者们提升效率、加快开发进程的重要工具。今天马建仓为大家推荐的就是五款值得关注的开源 React 组件,一起来看看吧!
2024-11-18 13:16:58
476
原创 告别繁琐!构建 Vue.js 组件库的简单方法
本文将带您探索构建 Vue.js 组件库的简化流程,以及背后的设计理念。vue-library 示例库可供参考。组件库是一组可重复使用的组件,可以用于多个项目。它可以帮助不同项目和团队共享资源,这些组件可以是低级通用组件(例如按钮、输入框和模态框),也可以是特定业务模块。然而,使用 Vue.js 构建组件库并不像看起来那样容易,因为 Vue.js 的单文件组件 (SFC) 带来了挑战。在标准 TypeScript 项目中,通常使用 tsup 或 Vite 将代码转译为 JavaScript,并进行打包。
2024-11-18 13:04:25
647
原创 比MyBatis快了100倍的ORM框架
支持 实体多表映射支持 动态字段运算符支持 分组聚合 查询支持 Select | Where | From 子查询支持 实体类嵌入参数支持 字段转换器支持 Sql 拦截器支持 数据库 Dialect 扩展支持 多数据源 与 动态数据源支持 注解缺省 与 自定义支持 字段运算符 扩展等等快速开发使用 Bean Searcher 可以极大节省后端的复杂列表检索接口的开发时间集成简单可以和任意 Java Web 框架集成,如:SpringBoot、Grails、Jfinal 等。
2024-11-18 07:34:31
869
原创 公司来了个新同事,把代码耗时从 26856ms 优化到了 748ms,一顿操作猛如虎
这其实就是时间复杂度,for循环嵌套for循环,就好比 循环每一个 user ,拿出 userId 需要在里面的循环从 userMemo list集合里面 按顺序去开盲盒匹配,拿出第一个,看看userId ,拿出第二个,看看userId ,一直找匹配的。相当于拿到userId 想去开盲盒的时候, 根据userId 这个key hash完能直接找到数组里面的索引标记位, 如果底下没链表(有的话O(logN)),直接取出来就完事了。其实数据量小的话,其实没多大性能差别,不过我们还是需要知道一些技巧点。
2024-11-18 07:19:46
910
原创 一行代码引发的性能暴跌10倍
栈上分配是 Java 虚拟机提供的一项优化技术,将线程私有的对象打散分配在栈上,栈上分配的对象回收直接 POP 出站,不需要垃圾回收器的介入,效率很高。由于对象一般分配在堆上,而堆是线程共用的,因此可能会有多个线程在堆上申请空间,而每一次的对象分配都必须线程同步,会使分配的效率下降。通过上面的分析,可以剖析出原因了,在使用打印的时候导致了 user 对象的逃逸,所以导致在栈上分配条件不满足,只能在堆上分配,这样就会导致频繁的 GC,效率低下。看似很简单的代码,却会带来这样的性能消耗,确实很让人费解。
2024-11-18 06:58:26
256
原创 uni-app打包微信小程序主包超2M?这里有终极解决方案
在开发微信小程序时,我们经常会遇到一个问题:代码包体积过大,尤其是主包超过2M的限制,导致无法上传。首先,我们需要明确的是,在开发版中,我们可以通过调整开发者工具的设置来增加主包和分包的体积上限。然而,对于体验版和正式版来说,主包体积的限制仍然是2M。对于使用uni-app进行开发的开发者来说,还有一些额外的优化策略可以帮助我们减小主包的体积。通过合理的分包策略,我们可以将不常用的页面和功能放在分包中,从而减小主包的体积。文件中写公共CSS代码,因为这会导致所有页面都加载这些代码,从而增加主包的体积。
2024-11-17 14:41:56
4492
原创 SpringBoot+EasyExcel轻松实现300万数据快速导出
在项目开发中往往需要使用到数据的导入和导出,导入就是从Excel中导入到DB中,而导出就是从DB中查询数据然后使用POI写到Excel上。
2024-11-17 14:39:47
1623
原创 SpringBatch批量这么强,你真的会用吗
我们设置为3,也就是说当一条数据操作失败,那我们会对这条数据进行重试3次,还是失败就是 当做失败了, 那么我们如果有配置skip(推荐配置使用),那么这个数据失败记录就会留到给 skip 来处理。数据处理器,是我们自定义的,里面主要是包含我们对数据处理的业务逻辑,并且我们设置了一些数据校验器,我们这里使用 JSR-303的Validator来作为校验器。这个chunk机制里,我们传入的 6500,也就是是告诉它,读取处理数据,累计达到 6500条进行一次批次处理,去执行写入操作。
2024-11-17 14:38:53
856
原创 SpringBoot项目Jar包加密,防止反编译!
最近项目要求部署到其他公司的服务器上,但是又不想将源码泄露出去。要求对正式环境的启动包进行安全性处理,防止客户直接通过反编译工具将代码反编译出来。
2024-11-17 00:45:31
1968
原创 SpringBoot集成OpenPDF实现PDF导出功能
如果你想要在Spring Boot项目中使用OpenPDF来生成PDF文件,而不是iText,你可以通过将HTML转换成PDF的方式来实现。OpenPDF是一个开源的Java PDF库,它基于iText 5.x版本,但是它主要提供了HTML到PDF的转换能力。
2024-11-14 21:20:33
712
1
Java设计模式 基础学习,适合初学者入门!
2024-11-17
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人