- 博客(14)
- 收藏
- 关注
原创 MySQL索引:
而B+树不一样,非叶子节点只存索引值和指向下个索引值的指针,索引8B 加指针 6B 共14B,一页能存 1170个。这样一来,B+树能用较低的深度存大量数据,树越浅查询次数越少,性能就越好,还支持范围查询,所以选它。B树的非叶子节点和叶子节点都存索引值和行数据,假设索引 8B、行数据 1K,加起来 1032B,而 MySQL 一页是16K,这样一页大概能存 15 条数据。非主键索引里,普通索引是在普通字段上建的,非叶子节点存索引列值,叶子节点存主键值。非聚簇索引就是非主键索引,索引对应的存储数据是主键值。
2025-09-28 19:40:13
299
原创 缓存在高并发项目下的应用
缓存穿透:查询数据缓存中没有,数据库中也没有的数据。大量的请求都穿透了缓存层直达数据库,导致数据库因为压力过大而宕机,炸了。缓存穿透是一种攻击数据库的手段。可以把数据库中没有的数据做成临时数据(ttl三秒的假数据(0值或者特殊值))放到缓存中。请求会直接访问缓存层而不是冲击数据库。(最暴力的方法)@Cacheable会自动将空数据存储到Redis,避免缓存穿透。
2025-09-19 20:18:11
620
原创 如何通过Canal中间件实现MySQL数据库与Elasticsearch搜索引擎的数据同步?
在之前的学习中,我们往ES的文档库中插入的数据都是我们通过代码从MYSQL批量导入的。但是实际应用场景中这种操作是不合适的。我们的需求是要在商家增删改MYSQL的商品数据时同时更新ES的文档库数据。 首先在MYSQL集群中,主服务器负责接收用户的CUD操作,从服务器负责接收用户的R操作。当主服务器的数据发生改变时,会写入到binlog文件中,再被从服务器读取并同步数据,从而到达MYSQL集群环境下的数据同步。而Canal中间件则会伪装成MYSQL从服务器,接收主服务器的binlog并解析,将其转换
2025-09-14 21:15:04
517
原创 RabbitMQ总结
相对简单生产者发送消息时,携带一个消息的唯一ID可以通过MessageProperties来指定消费者在消费消息时,先通过redis的setnx命令设置一个key为消息ID,值为0的操作。设置成功,表示当前消息没有被消费,消费消息,并且把redis的值改成1,手动ack设置失败,表示消息正在被消费或者已经消费完成了获取redis消息key的值,判断是否为1,如果为1,手动ack。auto:自动ack.消费消息不异常,返回ack给MQ.消费消息出异常了,返回nack,把消息重回队列。(1)生产者认证机制。
2025-09-09 20:08:33
1716
原创 说一说对百度千帆AI大模型的认识?
百度千帆(Baidu Qianfan)是百度智能云推出的一站式大模型开发与应用平台,旨在为企业及开发者提供从模型训练、推理部署到应用落地的全流程支持。该平台整合了百度自研的文心大模型(如ERNIE系列)及第三方开源模型(如LLaMA、ChatGLM等),并提供了丰富的工具链和服务,帮助用户高效构建AI应用。以下是对百度千帆AI大模型的核心认识:
2025-08-16 20:49:12
544
原创 Linux常用命令
权限命令字母权限麻烦:当前用户:u当前用户所在组:g其他用户:0所有用户:achmod u+r文件名chmod u=rw 文件名。
2025-07-31 22:23:37
1926
原创 dependencyManagement 和 dependencies是Maven 构建工具中用于管理项目依赖的两个不同部分,它们在作用和使用场景上的区别?
总结来说,更像是一个模板或者指南,告诉子模块哪些依赖是可以用的,以及应该用什么版本;而则是具体实现了这些依赖的实际引用。通过结合两者,可以使Maven项目更加模块化、易于维护。
2025-07-21 19:45:47
757
原创 在了解SpringBoot自动配置后 自定义一个Starter?
Spring Boot 的一大特点就是“开箱即用”,这得益于它强大的Starter 机制。所谓的 Starter,其实就是一个 Maven 或 Gradle 依赖,它包含了自动配置、默认属性和依赖管理等功能,使得我们只需引入一个依赖,就可以直接使用某个功能。引入这个依赖后,Spring Boot 会自动帮我们配置好 Web 相关的 Bean,无需手动配置。有时候我们希望将一些通用的功能模块封装成独立的 Starter,供多个项目复用。自定义日志输出格式集成公司内部的 SDK提供统一的异常处理机制。
2025-07-20 21:20:18
699
原创 JWT,过滤器,拦截器分别是什么?
在 Web 开发中,过滤器(Filter) 是一种非常重要的组件,用于对请求和响应进行统一处理。它广泛应用于权限控制、日志记录、编码处理、请求拦截等场景。2.4 如何定义一个过滤器(以SpringBoot为例)1.实现filter接口2.注册过滤器(SpringBoot )三.拦截器 (Interceptor) 在 Java Web 开发中,拦截器(Interceptor) 是 Spring MVC / Spring Boot 中用于拦截和处理请求的组件,它和 过滤器(Filter) 类似,
2025-07-17 21:11:16
947
原创 java面试题
1.三次握手 四次挥手?第一次握手:客户端->服务器目的:客户端告知服务器想要建立连接,并协商初始序列号.第二次握手:服务器->客户端目的:服务器确认收到客户端的请求,并同步自己的序列号.第三次握手:客户端->服务器目的:客户端确认服务器的响应,连接正式建立.四次挥手?第一次挥手:主动关闭方(客户端)->被动关闭方(服务器):目的:通知对方我已经没有数据要发送,准备关闭 连接.第二次挥手:被对方关闭->主动关闭方目的:被对方确认收到关闭请求,但可能还有数据未发送完毕.第三次挥手:主动方->被动关闭方目的:被
2025-07-07 23:51:34
142
原创 验证MySQL是否安装成功?
1.右键开始菜单(就是屏幕左下角),选择 命令提示符(管理员) ,打开黑框,敲入 mysql ,回车.2. 如果提示 Can't connect to MySQL server on 'localhost' 则证明添加成功;3.如果提示 mysql不是内部或外部命令,也不是可运行的程序或批处理文件 则表示添加添加失败,请重 新检查步骤并重试。 1.在刚才的命令行中,输入如下的指令:mysqld --initialize-insecure 稍微等待一会,如果出现没有出现报错信息,则证明data目录初始化
2025-07-06 19:01:45
689
1
原创 1.1My SQl的安装程序
官网下载地址:https://downloads.mysql.com/archives/community/ 安装MySQL具体的步骤,参考资料中提供的 《MySQL安装文档》 ,进行软件的安装即可。下载完成后我们得到的是一个压缩包,将其解压,我们就可以得到MySQL 8.0.34 的软件本体了(就是一个文件夹),我们可以把它放在你想安装的位置 。<img src="assets/image-20230922162657533.png" alt="image-20230922162657533" style
2025-07-06 18:30:57
182
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅