- 博客(20)
- 收藏
- 关注
原创 MySQL的索引语法详解
MySQL索引创建与使用指南 本文详细介绍了MySQL中索引的创建与管理方法。索引创建主要有两种方式:建表时创建(CREATE TABLE)和表存在后添加(ALTER TABLE/CREATE INDEX)。索引类型包括普通索引、唯一索引、主键索引、联合索引和全文索引,每种类型都有特定的语法和适用场景。文章还介绍了索引的删除(DROP INDEX)、查看(SHOW INDEX)等管理操作,以及前缀索引、联合索引最左前缀原则等高级用法。特别强调了ALTER TABLE在大表上操作的注意事项,以及如何通过强制使
2026-01-16 20:55:51
744
原创 在Linux中安装与卸载MySQL
执行上述的SQL会报错,原因是因为设置的密码太简单,密码复杂度不够。默认的root用户只能当前节点localhost访问,是无法远程访问的,我们还需要创建一个root账户,用户远程访问。登录到MySQL之后,需要将自动生成的不便记忆的密码修改了,修改成自己熟悉的便于记忆的密码。,而 MySQL 8 的 RPM 明确要“取代”它,RPM 默认不允许共存。降低密码的校验规则之后,再次执行上述修改密码的指令。然后输入上述查询到的自动生成的密码, 完成登录 .卸载上述查询出来的所有的MySQL安装包。
2026-01-14 19:42:50
412
原创 MySQL 索引全解析:索引类型、聚簇索引、回表与性能优化
本文系统介绍了MySQL索引的分类与实现原理。索引按功能可分为主键索引(PRIMARY KEY)、唯一索引(UNIQUE)、常规索引(INDEX)和全文索引(FULLTEXT);按存储形式分为聚簇索引和二级索引。重点分析了InnoDB引擎下聚簇索引(数据与索引一体化存储)和二级索引(存储主键值)的特点,通过图解展示了索引结构和回表查询过程,并解释了覆盖索引优化查询的原理。文章还探讨了索引设计的最佳实践,包括主键选择、索引覆盖等优化策略,为数据库性能优化提供了理论基础。
2026-01-14 16:27:48
1067
原创 一篇搞懂 MySQL 事务与事务隔离级别
本文系统介绍了MySQL事务的ACID特性及其实现机制:原子性通过UndoLog保证,一致性由约束条件和事务共同维护,隔离性通过锁机制和MVCC实现,持久性依赖RedoLog。重点分析了四种事务隔离级别(读未提交、读已提交、可重复读、串行化)及其可能引发的并发问题(脏读、不可重复读、幻读)。MySQL默认采用可重复读隔离级别,配合MVCC和间隙锁机制,在保证性能的同时有效解决了幻读问题。文章还提供了查看和设置事务隔离级别的具体SQL语法,帮助开发者根据业务需求合理配置隔离级别。
2026-01-12 21:46:10
812
原创 Spring控制反转IOC和依赖注入DI
本文介绍了控制反转(IoC)和依赖注入(DI)在软件开发中的重要性。传统开发方式中直接new对象会导致模块间紧密耦合,而IoC通过将对象创建权交给容器管理,实现解耦。文章详细阐述了IoC的三种实现方式(XML配置、Java配置类、注解扫描),并分析了@Component及其衍生注解的使用场景。同时解释了依赖注入的三种方式(属性注入、构造器注入、setter注入)及其优缺点,最后针对同类型多Bean情况提供了@Primary、@Qualifier和@Resource三种解决方案。这些技术显著提高了代码的可维护
2025-12-30 14:56:08
1147
原创 Spring Bean 生命周期全解析:初始化、销毁与三种方式的执行顺序实战
本文详细探讨了Spring框架中Bean生命周期的管理方式,主要包括三种实现方法:1)通过init-method和destroy-method配置;2)使用JSR-250规范的@PostConstruct和@PreDestroy注解;3)实现InitializingBean和DisposableBean接口。文章通过代码示例展示了这三种方式在单例Bean和原型Bean中的不同表现,重点分析了它们的执行顺序(注解→接口→配置方法)以及各自的特点和适用场景。同时,文章还揭示了原型Bean生命周期管理的特殊性。
2025-12-30 14:40:18
1400
原创 JavaScript 基础入门:语法、DOM、事件与面向对象全解析
JavaScript是一种面向对象的脚本语言,主要用于网页交互。它由ECMAScript(基础语法)、BOM(浏览器操作)和DOM(HTML文档操作)三部分组成。JS代码可通过内部脚本(<script>标签)或外部脚本(引入.js文件)方式嵌入HTML。基础语法包括变量(let声明)、常量(const声明)、数据类型(number、string、boolean等)和对象操作。JS作为弱类型语言,变量可存储不同类型值,支持模板字符串拼接。与HTML、CSS的关系是:CSS控制HTML样式,JS控制
2025-12-28 11:03:58
1126
原创 CSS 入门指南:从样式控制到页面布局
CSS(层叠样式表)是控制网页样式的技术,提供多种引入方式(行内、内部、外部样式)。颜色表示支持关键字、RGB、RGBA和十六进制格式。选择器包括标签、ID、类、伪类等,优先级由明确性决定。文本样式控制对齐、间距、缩进等效果,字体属性管理大小、粗细和类型。背景属性可设置颜色、图片等视觉效果。CSS通过丰富的样式属性和灵活的选择器机制,实现网页的多样化呈现。
2025-12-27 23:31:00
997
原创 HTML标签大全-学习笔记
HTML(超文本标记语言)是用于创建网页的标准标记语言,由标签构成文档结构。基本结构包含<html>、<head>和<body>标签,分别定义文档根元素、元信息和内容显示区域。常用文本标签包括标题<h1>-<h6>、段落<p>和格式化标签如<b>、<i>。多媒体通过<img>、<audio>和<video>标签嵌入。<a>标签创建超链接,<form>和&
2025-12-27 21:29:51
963
原创 RabbitMQ和Kafka消息队列确认机制详解:生产者、消费者与消息可靠性
消息队列确认机制摘要 消息队列中的确认机制是确保消息可靠传递的关键。生产者确认机制(Publisher Confirm和Return)用于验证消息是否成功发送到Broker并正确路由,通过ack/nack和return回调实现。消费者确认机制则通过ack/nack/reject三种回执告知MQ消息处理状态,SpringAMQP提供了none/manual/auto三种ACK处理模式。auto模式能自动根据业务异常类型返回适当确认,确保消息处理的可靠性。这两种机制共同解决了分布式系统中消息丢失的问题,是构建可
2025-12-18 10:10:14
947
原创 基于 C++ 实现的智能物流配送系统模拟程序
本文介绍了一个基于C++实现的智能物流配送系统模拟程序,该系统综合运用多种算法解决物流配送中的核心问题。系统包含五大功能模块:用户登录验证、基础数据管理、路径规划(采用Dijkstra算法)、车辆调度(考虑容量和时间窗约束)和库存优化(使用动态规划)。程序支持文件数据输入和自动示例生成,提供菜单式交互界面,可进行路线优化算法对比(贪心/2-opt/回溯+分支限界)。系统特色包括多算法集成、约束条件处理、自动数据生成以及清晰的代码结构,适合教学演示和课程项目使用。
2025-12-14 23:14:02
991
原创 git命令大全
本文总结了Git常用命令大全,涵盖基础操作、远程仓库、分支管理、版本回退等核心功能。内容包括:初始化仓库、提交代码、远程推送/拉取、分支创建/合并、冲突处理、版本回退、暂存修改、撤销操作、标签管理等实用命令。特别提供了.gitignore配置技巧和组合命令,如git pull与git fetch的区别。文章还重点介绍了git reset的三种模式(--soft/--mixed/--hard)和git reflog恢复误删提交的"救命"操作。所有命令均采用简洁格式呈现,方便开发者快速查阅和
2025-12-05 14:54:42
586
原创 如何在CentOS7上安装并启动Redis
摘要:本文详细介绍了在CentOS 7系统上安装Redis 6.2.6的过程及常见问题解决方案。主要内容包括:1)解决因CentOS 7官方源下线导致的依赖安装问题,通过切换阿里云或清华源;2)处理jemalloc依赖错误,改用libc内存分配器完成编译;3)配置Redis后台运行、密码验证等参数;4)设置systemd服务实现开机自启,重点解决daemonize与systemd的冲突问题。文中提供了完整的安装命令、配置文件修改要点以及服务管理方法,适用于需要手动部署Redis的生产环境。
2025-12-04 17:31:05
679
原创 操作系统OS之信号量超详细入门:原理、实现、死锁与优先级继承一篇搞定
信号量是用于并发控制的特殊变量,包含资源计数器和等待队列。通过原子操作wait()和signal()实现资源申请和释放,分别对应P(测试)和V(增加)操作。信号量分为计数信号量和二进制信号量,后者类似互斥锁。为避免忙等待,进程在资源不足时会被阻塞并加入等待队列,待资源释放后被唤醒。信号量实现需保证操作的原子性,单处理器可通过禁用中断实现,多处理器需特殊加锁技术。使用不当可能导致死锁(进程相互等待)或饥饿(无限阻塞)。优先级反转问题(高优先级进程被低优先级进程阻塞)可通过优先级继承协议解决,临时提升低优先级进
2025-12-04 16:20:28
1269
原创 如何解决IDEA的Git推送失败的问题
摘要:本文介绍了解决Git推送失败问题的完整方案,主要针对443端口无法连接GitHub服务器的错误。解决方案包含四个关键步骤:1) 检查并更新远程仓库SSH地址;2) 重新生成和配置SSH密钥(包括密钥生成、公钥添加和连接测试);3) 使用新密钥推送代码;4) 在IDEA中验证推送功能。通过SSH密钥认证方式替代HTTPS连接,有效解决了443端口连接失败的问题,确保代码能成功推送到GitHub仓库。
2025-11-20 10:15:20
362
原创 RedisGeo全解-Redis 也能做地理位置检索?深入掌握 GEO 的原理与实战
Redis从3.2版本开始提供GEO功能,基于ZSET和Geohash编码实现高效的地理位置检索。通过GEOADD、GEODIST、GEOSEARCH等命令,可以快速完成位置存储、距离计算和范围查询。其核心原理是Geohash算法,将二维坐标编码为一维字符串,通过分块思想加速查询。适用于附近搜索(美团/滴滴)、距离计算(配送范围)和实时调度(外卖派单)等场景。使用时需注意经纬度顺序、坐标系统一和精度限制(误差约0.5%)。Redis GEO以O(logN)复杂度支持百万级数据的地理查询,是轻量高效的解决方案
2025-11-19 17:25:02
885
原创 程序设计语言&汇编程序基本原理(文法、闭包、有限自动机)
程序设计语言是用于编写计算机程序的符号系统,分为机器语言、汇编语言和高级语言。高级语言具有数据成分(常量、变量、数据类型)、运算成分(算术、逻辑等运算)、控制成分(顺序、选择、循环结构)和传输成分(输入输出)。函数是独立的功能模块,涉及定义、声明和调用。编译过程包括词法分析、语法分析、语义分析、中间代码生成、代码优化和目标代码生成。文法规则描述语言结构,包括终结符、非终结符和产生式。有限自动机用于词法分析,分为确定性和非确定性两类。语法分析方法包括自上而下(递归下降)和自下而上(移进-归约)两种。编译和解释
2025-10-24 17:29:17
831
原创 计算机系统知识-I/O技术
本文介绍了计算机输入/输出技术和总线结构。输入/输出技术包括四种方式:直接程序控制(分无条件传送和程序查询)、程序中断、DMA直接存取和通道方式,分别适用于不同速度的外设和场景。总线结构分为内部总线、系统总线(数据/地址/控制总线)和I/O总线,是连接计算机各部件的公共数据通道。文章还列举了常见的总线标准如PCI、SCSI、USB等。这些技术共同构成了计算机系统内部设备间高效通信的基础。
2025-10-23 15:30:09
525
原创 计算机系统知识-存储系统
摘要:存储器系统通过分级结构(内存、外存、Cache)实现大容量、高速度和低成本的目标。内存作为主存速度快但容量小,外存(磁盘等)容量大但速度慢。Cache基于局部性原理,采用地址映射技术(全相联/直接/组相联)解决CPU与主存速度不匹配问题。虚拟存储器通过MMU将虚拟地址转为物理地址,扩展内存空间。磁盘存取时间包括寻道、旋转等待和数据传输三部分,其物理结构采用柱面方式组织数据。不同存储介质(磁/半导体/光)和工作方式(RAM/ROM)共同构成完整的存储体系。
2025-10-23 11:29:47
624
原创 操作系统笔记-PCB详解
摘要:进程控制块(PCB)是操作系统管理进程的核心数据结构,包含进程标识符、状态、优先级、程序计数器等关键信息。PCB按组织方式分为线性表、链表和索引三种形式,分别适用于不同规模的系统。PCB作为进程存在的唯一标识,实现了进程的独立运行、间断性执行、资源管理及进程间通信等功能。操作系统通过PCB跟踪进程状态变化,为进程调度提供依据,是多道程序环境下进程并发执行的基础。
2025-10-21 12:05:46
1301
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅