- 博客(1598)
- 资源 (16)
- 问答 (4)
- 收藏
- 关注

原创 详解 Mysql LEFT JOIN和JOIN查询区别及原理
一、Join查询原理查询原理:MySQL内部采用了一种叫做 nested loop join(嵌套循环连接)的算法。Nested Loop Join 实际上就是通过驱动表的结果集作为循环基础数据,然后一条一条的通过该结果集中的数据作为过滤条件到下一个表中查询数据,然后合并结果。如果还有第三个参与 Join,则再通过前两个表的 Join 结果集作为循环基础数据,再一次通过循环查询条件到第三个表中查询数据,如此往复,基本上MySQL采用的是最容易理解的算法来实现join。所以驱动表的选择非常重要,驱动表的数据
2020-06-28 10:42:06
25915
7

原创 必学必会的nginx配置location匹配顺序总结
location匹配顺序1."="前缀指令匹配,如果匹配成功,则停止其他匹配2.普通字符串指令匹配,顺序是从长到短,匹配成功的location如果使用^~,则停止其他匹配(正则匹配)3.正则表达式指令匹配,按照配置文件里的顺序,成功就停止其他匹配4.如果第三步中有匹配成功,则使用该结果,否则使用第二步结果注意点匹配的顺序是先匹配普通字符串,然后再匹配正则表达式。另外普通字符串匹配...
2019-06-18 16:36:08
24074
1
原创 白话大模型相关概念
大模型的强大能力主要来源于两个方面:一是超大规模的数据训练,模型通常使用来自互联网、书籍、新闻等多样化的数据进行训练,使其具备广泛的知识背景。蒸馏则是通过用大模型生成大量的训练数据,再用这些数据训练一个小模型,让小模型学会大模型的核心能力,从而实现“小模型做大事”以 GPT-3 为例,它拥有 1750 亿个参数,这些参数是模型中的“数字权重”,通过训练数据不断调整,使模型能够理解语言的语义和逻辑。在自然语言中,单词之间存在语义上的关系,如“苹果”与“香蕉”是相似的,而“苹果”与“汽车”关系较远。
2025-03-19 07:00:00
880
原创 超详细!离线部署大模型:ollama+deepseek+open-webui安装使用方法及常见问题解决
通过以上内容,我们了解了 ollama 在国内环境下的安装使用方法,并介绍了因为国内网络特色导致安装过程可能会遇到的常见问题及解决办法。希望这些内容对你有所帮助,如果你有任何问题或建议,欢迎在评论区留言交流。• ollama 官方站:https://ollama.com• ollama 中文站:https://ollama.org.cn• ollama 入门:https://ollama.readthedocs.io/quickstart/
2025-03-18 22:53:34
1140
原创 AnythingLLM + Ollama 实现私有知识库
是一款开箱即用的一体化 AI 应用,支持 RAG(检索增强生成)、AI 代理等功能。它无需编写代码或处理复杂的基础设施问题,适合快速搭建私有知识库和智能问答系统。通过和Ollama的结合,我们成功搭建了一个具备私有知识库能力的 AI 应用。私有知识库不仅可以让 AI 回答通用问题,还能基于私有文档(如企业内部资料、图书等)生成更精准的答案。注意: 随着知识库中文档数量的增加,回答的准确性可能会受到影响。建议将文档分散到多个工作区,以提高检索效率。
2025-03-18 08:45:00
715
原创 VLLM vs. Ollama
在深入了解细节之前,让我们先了解这两个框架的核心目的。VLLM(超大型语言模型)是由 SKYPILOT 构建的推理优化框架,旨在提高在 GPU 上运行的 LLM 的效率。使用连续批处理快速生成令牌。通过 PagedAttention 实现高效的内存使用,允许处理大型上下文窗口而不会消耗过多的 GPU 内存。无缝集成到 AI 工作流中,兼容 PyTorch 和 TensorFlow 等主要深度学习平台。VLLM 被需要大规模高性能推理的 AI 研究人员和企业广泛使用。
2025-03-17 21:45:45
876
原创 JS学习之JavaScript模块化规范进化论
JavaScript 语言诞生至今,模块规范化之路曲曲折折。社区先后出现了各种解决方案,包括 AMD、CMD、CommonJS 等,而后 ECMA 组织在 JavaScript 语言标准层面,增加了模块功能(因为该功能是在 ES2015 版本引入的,所以在下文中将之称为 ES6 module)。今天我们就来聊聊,为什么会出现这些不同的模块规范,它们在所处的历史节点解决了哪些问题?
2025-01-22 23:13:18
907
原创 javaScript 的语法糖全解
本文介绍了 JavaScript 中常用的 40 种语法糖,涵盖变量声明、对象操作、函数简写和现代语法特性等多个方面。掌握这些语法糖,可以使代码更简洁、更易读,并提升开发效率。我们鼓励大家在实际项目中尝试这些技巧,感受它们带来的便利。现在,请思考一下:你在日常开发中还遇到过哪些让你惊艳的语法糖?欢迎在评论区分享你的经验和见解,让我们一起进步!
2025-01-22 22:48:41
1199
原创 开发大神都在用的开发环境和工具——>提高开发效率
本文主要介绍后端开发同学常用的工具以及开发环境搭建。本文主要介绍后端开发同学常用的工具,以及开发环境搭建,以下内容有部分软件是针对 MacOS 操作系统,大部分软件各平台通用。
2025-01-15 06:45:00
1934
转载 聊聊Druid连接池的内部原理及推荐配置
平时跟RD排查问题,经常会遇到数据库连接池相关的问题,比如获取不到连接、抛异常、长时间占用无法归还、探活、性能开销等。发现不少同学对连接池仍停留在表层的一知半解,很多配置也是相互复制的,基于此,本文整理了。当我们有了连接池,应用程序启动时就预先建立多个数据库连接对象,然后将连接对象保存到连接池中。新建连接和关闭连接,操作较重,费时费力,也影响了业务请求。功能,连接从连接池借出后,长时间不归还,将触发强制关闭其。连接池最核心的功能就是连接的获取与回收。)连接,随着程序的运行,池不忙时也会保持最少3个(
2025-01-14 09:00:00
135
原创 对线面试官:MySQL 给数据表增加一列,一定会锁表吗?
总结上面的所有内容,实际就是单纯的增加一个字段,表结构修改和索引添加通常不会锁定整个表,在某些情况下,MySQL可能需要锁定整个表。同时数据量过大的时候,会出现一些性能问题,所以我们实际操作的过程中,一定要关注表的数据多小,最终的数据大小(这里要关注索引数据)。从 MySQL 5.6 版本开始,InnoDB 引擎引入了在线数据定义语言(DDL)操作,其中包括对表结构的修改。MySQL 8.0 在处理大数据表增加字段的情况下进行了一些优化,进一步优化了减少对表的锁定时间和降低性能影响。
2025-01-09 07:45:00
1003
原创 SpringBoot Maven 项目 pom 中的 plugin 插件用法整理
把 SpringBoot Maven 项目打包成 jar 文件时,我们通常用到 spring-boot-maven-plugin 插件。前面也介绍过,在 spring-boot-starter-parent POM 和 spring-boot-starter POM 中都有插件的管理,现在我们就撸一把构建元素中插件的用法。project 标签指定项目的声明。modelVersion 标签指定 POM 模型的版本。目前使用的是 4.0.0 版本。这是 Maven 项目的根元素,定义了项目模型的版本。
2025-01-05 22:34:37
2435
1
原创 SpringBoot 多种生产打包方式详解
生产上发布 Spring Boot 项目时,流程颇为繁琐且低效。但凡代码有一丁点改动,就得把整个项目重新打包部署,耗时费力不说,生成的 JAR 包还特别臃肿,体积庞大。每次更新项目,光是上传这大文件就得花费不少时间,严重影响工作节奏。为解决这一痛点,我打算把依赖库以及配置文件(lib 文件夹下的那些 jar 包, 还有 config 下的 applacation.yml 等文件)从项目主体里剥离出来,后续部署时,只需发布核心代码就行,这样既能加快部署速度,又能减轻文件传输负担,让项目更新变得轻松便捷。
2025-01-05 22:27:20
1254
原创 BigDecimal 为什么可以不丢失精度?
所以可以得出结论:BigDecimal在计算时,实际会把数值扩大10的n次倍,变成一个long型整数进行计算,整数计算时自然可以实现精度不丢失。同时结合精度scale,实现最终结果的计算。在金融领域,为了保证数据的精度,往往会使用BigDecimal。本文就来探讨下为什么BigDecimal可以保证精度不丢失。通过debug来发现源码中的奥秘是了解类运行机制很好的方式。这个例子中,该方法传入的参数分别是:xs=236,scale1=2,ys=35,scale2=1。
2025-01-04 08:15:00
584
原创 Spring 状态机 VS 阿里状态机:哪个更适合你的业务场景
现代软件开发中,状态机作为一种强大的工具,被广泛应用于各种业务场景,用以管理对象的生命周期及其状态转换。本文将深入探讨 Spring 状态机和阿里状态机。
2025-01-03 07:00:00
640
原创 深入理解堆外内存:从原理到实践,MQ为什么不会引起频繁GC?
明明服务器有32GB内存,可JVM却只能使用4GB,剩下的内存成了"摆设"。又或者,你是否好奇为什么Kafka、RocketMQ这样的高性能消息队列系统能轻松处理TB级的数据而不会引起频繁的GC?今天,让我们一起揭开堆外内存的神秘面纱。公司有一个中心仓库(JVM堆内存),所有的包裹都要经过这个仓库的处理。这时你会想:如果能在公司周边设立一些小型中转站(堆外内存),直接处理一些大件包裹,是不是就能解决这些问题?它像一个"管家",虽然自己住在JVM堆里(很小的对象),但管理的是堆外的"领地"(直接内存)。
2025-01-02 10:00:00
638
原创 jenkins pipeline post语法
具体的代码实现,可以放在别的包里面。一些条件后 的块的内支持 post:部分 always,changed,failure,success,unstable,和 aborted。在 post 代码块区域,支持多种条件指令,这些指令有 always,changed,failure,success,unstable,和 aborted。这个 failure 条件一般来说,百分百会写到 Pipeline 代码中,内容无非就是发邮件通知,或者发微信群,钉钉机器人,还有国外的 slack 聊天群组等。
2025-01-01 23:17:20
890
原创 哪些年背过的面试题——ES篇
特点没有其他依赖,下载后安装非常方便;只用修改几个参数就可以搭建起来一个集群;输入 / 输出格式为 JSON,意味着不需要定义 Schema,快捷方便;基本所有操作 (索引、查询、甚至是配置) 都可以通过 HTTP 接口进行;节点对外表现对等(每个节点都可以用来做入口) 加入节点自动负载均衡;可根据不同的用途分索引,可以同时操作多个索引;可以扩展到 PB 级的结构化和非结构化数据 海量数据的近实时处理;功能分布式的搜索引擎分布式:Elasticsearch 自动将海量数据分散到多台服务器上去存储和检索。
2024-11-01 22:54:46
1015
原创 那些年背过的面试题——架构设计篇
通过 DDD 领域模型,对服务进行拆分,将一个系统拆分为多个子系统,做成 SpringCloud 的微服务。微服务设计时要尽可能做到少扇出,多扇入,根据服务器的承载,进行客户端负载均衡,通过对核心服务的上游服务进行限流和降级改造。一个服务的代码不要太多,1 万行左右,两三万撑死了吧。大部分的系统,是要进行的,第一次拆分,可能就是将以前的多个模块该拆分开来了,比如说将电商系统拆分成等等吧。但是后面可能每个系统又变得越来越复杂了,比如说采购系统里面又分成了,订单系统又拆分成了系统。
2024-10-15 23:28:16
1096
原创 那些年背过的面试题——Spring篇
IoC(Inverse of Control: 控制反转)是⼀种设计思想,就是将原本在程序中⼿动创建对象的控制权,交由 Spring 框架来管理。IoC 在其他语⾔中也有应用,并非Spring 特有。IoC 容器是 Spring 用来实现 IoC 的载体, IoC 容器实际上就是个 Map(key,value),Map 中存放的是各种对象。将对象之间的相互依赖关系交给 IoC 容器来管理,并由 IoC 容器完成对象的注⼊。这样可以很大程度上简化应用的开发,把应用从复杂的依赖关系中解放出来。
2024-09-02 23:14:59
1176
原创 那些年背过的面试题——Netty篇
Core 核心层Core 核心层是 Netty 最精华的内容,它提供了底层网络通信的通用抽象和实现,包括事件模型、通用API、支持零拷贝的 ByteBuf 等。Protocol Support 协议支持层协议支持层基本上覆盖了主流协议的编解码实现,如 HTTP、Protobuf、WebSocket、二进制等主流协议,此外 Netty 还支持自定义应用层协议。Netty 丰富的协议支持降低了用户的开发成本,基于 Netty 我们可以快速开发 HTTP、WebSocket 等服务。Transport Ser
2024-07-08 22:41:58
1057
原创 那些年背过的面试题——MySQL篇
性能上,使用 cql 查询,对长程关系的查询速度快擅于发现隐藏的关系,例如通过判断图上两点之间有没有走的通的路径,就可以发现事物间的关联。
2024-07-07 22:13:38
1206
原创 那些年背过的面试题——Redis篇
速度快,完全基于内存,使用 C 语言实现,网络层使用 epoll 解决高并发问题,单线程模型避免了不必要的上下文切换及竞争条件;与传统数据库不同的是 Redis 的数据是存在内存中的,所以读写速度非常快,因此 Redis 被广泛应用于缓存方向,每秒可以处理超过 10 万次读写操作,是已知性能最快的 Key-Value DB。另外,Redis 也经常用来做分布式锁。除此之外,Redis 支持事务 、持久化、LUA 脚本、LRU 驱动事件、多种集群方案。
2024-07-07 22:13:25
984
原创 java Logback 日志格式参数详细说明
Logback 可配置多种颜色,支持:%black,%shired,%green,%yellow,%blue,%magenta,%cyan,%white,%gray,%boldRed,%boldGreen,%boldYellow,%boldBlue,%boldMagenta%boldCyan,%boldWhite,%highlight。尤其在生成日志文件的时候,这个是非常有必要的,因为日志文件必须要设置最大文件大小,如果在生成日志文件的规则内,一个日志文件生成到了最大值,那就需要生成 2 号文件。
2024-06-26 23:50:20
1635
原创 高并发架构通用设计方案
既然是亿级用户应用,那么高并发必然是其架构设计的核心要素。本文我们将介绍高并发架构设计的一些通用设计方案。关键词:读 / 写分离、数据缓存、缓存更新、CQRS、数据分片、异步写无论是数据库读 / 写分离、本地缓存还是分布式缓存,其本质上都是读 / 写分离,这也是在微服务架构中经常被提及的 CQRS 模式。CQRS(Command Query Responsibility Segregation,命令查询职责分离)是一种将数据的读取操作与更新操作分离的模式。
2024-05-23 19:23:06
1343
1
原创 面试官:Java 内部类持有外部类为什么会导致内存泄露?
若内部类持有外部类的引用,对内部类的使用很多时,会导致外部类数目很多。此时,就算是外部类的数据没有被用到,外部类的数据所占空间也不会被释放。本处在外部类存放大量的数据来模拟。内部类改为静态的之后,它所引用的对象或属性也必须是静态的,所以静态内部类无法获得外部对象的引用,只能从 JVM 的 Method Area(方法区)获取到 static 类型的引用。
2024-05-22 19:55:48
898
原创 6种MySQL数据库平滑扩容方案剖析
在项目初期,我们部署了三个数据库 A、B、C,此时数据库的规模可以满足我们的业务需求。为了将数据做到平均分配,我们在 Service 服务层使用 uid%3 进行取模分片,从而将数据平均分配到三个数据库中。如图所示:后期随着用户量的增加,用户产生的数据信息被源源不断的添加到数据库中,最终达到数据库的最佳存储容量。如果此时继续向数据库中新增数据,会导致数据库的 CRUD 等基本操作变慢,进而影响整个服务的响应速度。
2024-05-22 19:55:14
1923
原创 keepalived实现服务高可用原理详解
router_id 信息不一致state 状态描述信息不一致priority 主备竞选优先级数值不一致。
2024-05-21 20:08:58
1264
原创 为什么 MySQL 不推荐使用 join?
但是问题来了,如果匹配到的数据量太大就不行了,也会导致返回的分页记录跟实际的不一样,解决的方法可以交给前端,一次性查询,让前端分批显示就可以了,这种解决方案的前提是数据量不太,因为 sql 本身长度有限。子查询就更别用了,效率太差,执行子查询时,MYSQL 需要创建临时表,查询完毕后再删除这些临时表,所以,子查询的速度会受到一定的影响,这里多了一个创建和销毁临时表的过程。关联查询的好处是可以做分页,可以用副表的字段做查询条件,在查询的时候,将副表匹配到的字段作为结果集,用主表去 in 它。
2024-05-20 19:25:06
890
原创 Mysql 备份恢复 mysqldump与xtrabackup备份
1、mysqldump: mysql 原生自带很好用的逻辑备份工具2、mysqlbinlog: 实现 binlog 备份的原生态命令3、xtrabackup: precona 公司开发的性能很高的物理备份工具备份的基本流程如下1.调用FTWRL(flush tables with read lock),全局禁止读写2.开启快照读,获取此时的快照(仅对innodb表起作用)3.备份非innodb表数据(*.frm,*.myi,*.myd等)4.非innodb表备份完毕后,释放FTWRL锁。
2024-05-20 19:22:08
1537
原创 servlet生命周期
Servlet 容器加载 Servlet,加载完成后,Servlet 容器会创建一个 Servlet 实例并调用 init() 方法,init() 方法只会调用一次。客户发送一个请求,Servlet 调用 service() 方法对请求进行响应,service() 方法会对请求的方法进行匹配,进入相应的逻辑层,完成请求的响应。3.初始化:通过调用Servlet的init()方法来完成初始化工作,这个方法是在Servlet已经被创建,但在向客户端提供服务之前调用。Servlet 类文件被更新后,重新装载。
2024-04-25 09:02:12
450
原创 得物面试:Redis 内存碎片是什么?如何清理?
你可以将内存碎片简单地理解为那些不可用的空闲内存。举个例子:操作系统为你分配了 32 字节的连续内存空间,而你存储数据实际只需要使用 24 字节内存空间,那这多余出来的 8 字节内存空间如果后续没办法再被分配存储其他数据的话,就可以被称为内存碎片。Redis 内存碎片虽然不会影响 Redis 性能,但是会增加内存消耗。
2024-04-25 09:01:52
1269
原创 工作中常用的5种加密算法
综上,实际使用中,常常根据自身系统特征选择。比如:执行效率、数据量、安全合规要求等,这里给出上述简易版整理。加密算法名称有效长度特性是否加密解密优点缺点MD5MD5 散列算法128 位散列函数不可逆速度快,简单安全性低,易受碰撞攻击AESAES 加密算法128/192/256 位对称加密是安全性高,效率高无严重弱点DESDES 加密算法56 位对称加密是速度快,曾广泛使用密钥短,安全性低国密 SM4SM4 加密算法128 位对称加密是。
2024-04-24 16:35:55
1516
原创 三方接口调用设计方案
API 密钥生成:为每个三方应用生成唯一的 API 密钥对(AK/SK),其中 AK 用于标识应用,SK 用于进行签名和加密。AK:Access Key Id, 用于标示用户。SK:Secret Access Key, 是用户用于加密认证字符串和用来验证认证字符串的密钥,其中 SK 必须保密。通过使用 Access Key Id / Secret Access Key 加密的方法来验证某个请求的发送者身份。接口鉴权。
2024-04-24 16:35:38
1266
2022图解网络 IPv6 、网络设备、二层交换机、三层交换机、防火墙、无线、设备选型,网络规划和实战
2022-07-04
windows加密器9款加密工具合集:U盘防拷贝、视频加密、PDF文件加密、EXE文件加密等
2022-05-13
Jenkins持续集成从入门到精通.pdf
2021-09-07
Navicat.7z
2020-03-26
Maven基础讲义.zip
2019-07-30
西蒙iPhone-OpenGL ES 教程【中文翻译版PDF】
2017-09-01
SurfaceView
2015-05-05
CameraDemo
2015-05-02
android 选项卡TanHost
2015-05-02
iOS 怎么上架后台持续定位的应用
2016-01-20
求vs2012怎么连接Oracle,大神们求助!!!
2015-05-09
请问Android.mk在哪里,需要自己写吗?求各位大侠指教。
2015-04-08
android获取GPS添加权限后出现问题。求大神给指点。
2015-04-08
TA创建的收藏夹 TA关注的收藏夹
TA关注的人