为什么索引的数量不能太多?
当对表中的数据进行增加、删除、修改时,同时需要动态维护索引,降低了整体的维护速度。 索引需要占据物理空间,如果要建立聚簇索引,那么需要的空间就会更大,因为会将数据存储于叶子节点。 创建索引和维护索引要耗费时间,这种时间随着数据量的增加而增加
什么是缓存雪崩 ? 怎么解决 ?
缓存雪崩/缓存失效 指的是大量的缓存在同一时间失效,大量请求落到数据库 导致数据库瞬间压力飙升。 造成这种现象的 原因是,key的过期时间都设置成一样了。 解决方案是,key的过期时间引入随机因素
什么情况下消息会成为死信 ?
当一个队列中的消息满足下列情况之一时,就会成为死信(dead letter): ● 消费者使用basic.reject或 basic.nack声明消费失败,并且消息的requeue参数设置为false ● 消息是一个过期消息,超时无人消费 ● 要投递的队列消息满了,无法投递
什么叫覆盖索引
覆盖索引是指只需要在一棵索引树上就能获取SQL所需的所有列数据 , 因为无需回表查询效率更高 实现覆盖索引的常见方法是:将被查询的字段,建立到联合索引里去。 执行如下查询语句 : select name,age from user where name='Alice' 因为要查询 name和 age二个字段 , 那么我们可以建立组合索引 create index index_name_age on user(name,age) 那么索引存储结构如下 : 这种情况下, 执行select name,age from user where name='Alice' , 会先根据name='Ali
什么是类加载器,类加载器有哪些?
主要有一下四种类加载器: 1. 启动类加载器(Bootstrap ClassLoader)用来加载java核心类库,无法被java程序直接引用。 2. 扩展类加载器(extensions class loader):它用来加载 Java 的扩展库。Java 虚拟机的实现会提 供一个扩展库目录。该类加载器在此目录里面查找并加载 Java 类。 3. 系统类加载器(system class loader):它根据 Java 应用的类路径(CLASSPATH)来加载 Java 类。一般来说,Java 应用的类都是由它来完成加载的。可以通过 ClassLoader.getSystemClassLoa
Final 有什么用?
被final修饰的类不可以被继承 被final修饰的方法不可以被重写 被final修饰的变量不可以被改变, 被final修饰不可变的是变量的引用,而不是引用指向的内容, 引用指向的内容是可以改变的
Spring中事务失效的场景
因为Spring事务是基于代理来实现的,所以某个加了@Transactional的⽅法只有是被代理对象调⽤时, 那么这个注解才会⽣效 , 如果使用的是被代理对象调用, 那么@Transactional会失效 同时如果某个⽅法是private的,那么@Transactional也会失效,因为底层cglib是基于⽗⼦类来实现 的,⼦类是不能重载⽗类的private⽅法的,所以⽆法很好的利⽤代理,也会导致@Transactianal失效 如果在业务中对异常进行了捕获处理 , 出现异常后Spring框架无法感知到异常, @Transactional也会失效
Spring中的事务是如何实现的
1. Spring事务底层是基于数据库事务和AOP机制的 2. ⾸先对于使⽤了@Transactional注解的Bean,Spring会创建⼀个代理对象作为Bean 3. 当调⽤代理对象的⽅法时,会先判断该⽅法上是否加了@Transactional注解 4. 如果加了,那么则利⽤事务管理器创建⼀个数据库连接 5. 并且修改数据库连接的autocommit属性为false,禁⽌此连接的⾃动提交,这是实现Spring事务⾮ 常重要的⼀步 6. 然后执⾏当前⽅法,⽅法中会执⾏sql 7. 执⾏完当前⽅法后,如果没有出现异常就直接提交事务 8. 如果出现了异常,并且这个异常是需要回滚的就会回滚事务
线程池的核心参数有哪些 ?
corePoolSize 核心线程数量 maximumPoolSize 最大线程数量 keepAliveTime 线程保持时间,N个时间单位 unit 时间单位(比如秒,分) workQueue 阻塞队列 threadFactory 线程工厂 handler 线程池拒绝策略
MongoDB的特点
高性能 MongoDB提供高性能的数据持久性。特别对嵌入式数据模型的支持减少了数据库系统上的I/O活动。 索引支持更快的查询,并且可以包含来自嵌入式文档和数组的键。(文本索引解决搜索的需求、TTL索引解决历史数据自动过期的需求、地理位置索引可用于构建各种 O2O 应用) mmapv1、wiredtiger、mongorocks(rocksdb)、in-memory 等多引擎支持满足各种场景需求。 Gridfs解决文件存储的需求。 高可用性 MongoDB的复制工具称为副本集(replica set),它可提供自动故障转移和数据冗余。 高扩展性 MongoDB提供了水平可扩展性作为其核
极速上手!Claude Code 原生支持 Windows 免WSL安装教程
Claude Code 现已支持 Windows 原生运行,无需 WSL 配置。本文提供详细安装教程,涵盖 Node.js 环境验证、Git 安装及 Claude Code 配置步骤,助你快速上手这一强大 AI 编程工具。
🧠 用 AI 提升你的编程效率 —— 在 PyCharm 中体验通义灵码
通义灵码是一款基于大模型的智能编程辅助工具,现已上线PyCharm插件V2.5+版本。它能根据自然语言描述、注释或上下文生成高质量代码,支持多语言(Python、Java等),提供代码补全、优化建议、单元测试生成及异常排查等功能。集成魔搭MCP市场3000+服务,具备编程智能体模式与长期记忆能力,助开发者提升效率。适用初学者、资深开发者及团队协作场景。小红书、B站、抖音、微博均有相关资源分享。 小红书: http://xhslink.com/a/SvabuxSObf3db bilibili:https://b23.tv/1HJAdIx 抖音: https://v.douyin.com/1DAG
图片压缩工具横评:zippic与tinypng全方位对比
图片压缩是提升工作效率的关键工具,广泛应用于自媒体、网站开发及设计协作。本文对比了两款主流工具 tinypng 与 zippic,在 UI 设计、压缩效果及安全性方面的表现,帮助用户根据实际需求做出选择。
女朋友说“好累”,我连夜做了一个 APP
简介:本文分享了作者如何通过一句话,利用“通义灵码”快速开发出一个实用的打卡提醒工具,全程几乎无需手动操作,展示了智能开发工具在简化编程、实现创意落地方面的强大能力。
通过AI编程工具,实现沉浸式翻译 Light Translate
通过AI编程工具,实现Light Translate 是一款智能沉浸式翻译插件,鼠标悬停0.1秒即可精准翻译单词,无需点击或选择,助力流畅阅读英文网页,专为英语工作者设计,提升阅读效率与语言能力。