自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(66)
  • 收藏
  • 关注

原创 Git 从入门到精通:原理、实战与企业级协作指南

区域定义操作关联工作区(Working Directory)电脑上你写代码的目录(如~/gitcode),是你实际操作文件的地方新建 / 修改文件后,工作区会标记为 “已修改”(modified暂存区(Stage/Index)临时存储待提交的修改,位于.git/index文件中,可理解为 “提交缓冲区”git add将工作区修改添加到暂存区,将暂存区修改回退到工作区版本库(Repository)隐藏目录.git,存储所有版本快照、分支、配置等核心数据,是 Git 的核心git commit。

2025-10-17 17:20:24 879

原创 C 语言连接 MySQL 实战:从环境搭建到接口调用,搞定数据库交互

C 语言连接 MySQL 的核心是 “依赖 Connector/C 库 + 按流程调用接口”,关键步骤可概括为 “初始化→连接→执行 SQL→处理结果→关闭”。掌握这些接口后,可实现数据的增删改查,满足 C 语言项目的持久化需求。

2025-10-17 17:19:59 711

原创 MySQL 用户管理实战:从创建用户到权限控制,筑牢数据库安全防线

MySQL 用户管理的核心是 “精细化控制”—— 通过创建专用用户、按需分配权限,既保障数据库安全,又不影响业务操作。用户操作:创建用户需指定 “用户名 + 登录主机”,删除用户需精准定位,修改密码区分 “自改” 和 “管理员改”;权限操作:用GRANT授予权限、REVOKE回收权限,遵循 “最小权限原则”,避免过度授权;安全建议:限制登录主机、使用强密码、定期审计,筑牢数据库安全防线。

2025-10-17 17:19:32 793

原创 MySQL 视图实战指南:从创建到优化,解锁虚拟表的高效用法

视图不是真实存在的表,而是 “由查询语句定义的虚拟表”—— 它包含列和行,但数据不单独存储,而是动态从 “基表”(创建视图时依赖的表)中获取。视图是 MySQL 的 “高效工具”,核心价值在于 “封装复杂逻辑、简化查询、控制权限”,但需注意其 “虚拟性” 和 “性能限制”。核心操作:创建用,查询用SELECT,删除用DROP VIEW,修改视图数据会同步影响基表;使用限制:无索引、不能关联触发器,复杂视图需关注性能,避免频繁访问;适用场景。

2025-10-17 17:19:11 667

原创 MySQL 事务管理深度解析:从 ACID 到 MVCC,彻底搞懂事务隔离与并发控制

ACID 特性:原子性(回滚)、一致性(业务 + 技术)、隔离性(隔离级别)、持久性(redo log);隔离级别:优先使用 MySQL 默认的 “可重复读”,平衡安全与并发;MVCC:通过多版本实现 “读写并行”,是高并发场景的性能基石;实战原则:短事务、显式控制提交 / 回滚、避免长事务阻塞。

2025-10-17 17:18:53 755

原创 MySQL 索引深度解析:从原理到实战,让查询效率提升 1000 倍

索引是 MySQL 性能优化的 “核心工具”,其价值在于 “用空间换时间”—— 通过额外存储索引结构,大幅减少查询的 IO 次数。底层结构:B + 树通过 “矮层高、叶子节点存数据、链表支持范围查询”,成为最优索引结构;索引类型:InnoDB 的聚簇索引效率最高,MyISAM 的非聚簇索引需二次查找;操作实战:主键索引保证唯一性,唯一索引保证字段不重复,普通索引优化频繁查询;创建原则:按需创建,平衡查询与写入性能,避免滥用索引。

2025-10-17 17:18:31 750

原创 MySQL 表连接深度解析:内连接与外连接实战,搞定跨表数据关联

内连接:精准关联匹配数据,适用于 “有关联才需要显示” 的场景(如 “有订单的用户”);左外连接:保留左表所有数据,适用于 “需显示左表全部,右表可选” 的场景(如 “所有学生,含无成绩的学生”);右外连接:保留右表所有数据,适用于 “需显示右表全部,左表可选” 的场景(如 “所有成绩,含无对应学生的成绩”)。

2025-10-17 17:18:07 866

原创 MySQL 复合查询实战:从多表联查到子查询,搞定复杂业务数据提取

多表联查:通过INNER JOINLEFT JOINON关联条件,提取跨表数据,避免笛卡尔积;自连接:将一张表拆分为两张表,查询表内关联数据(如员工与领导);子查询:嵌套在其他 SQL 中,实现 “先算后查”,支持单行、多行、多列场景;合并查询:用UNIONUNION ALL整合多个 SELECT 结果,按需选择是否去重。

2025-10-17 17:17:46 776

原创 MySQL 内置函数实战指南:从日期处理到字符串操作,高效解决业务数据处理需求

简化 SQL 逻辑:用concat()替代手动字符串拼接,用date_add()避免程序端时间计算;提升性能:减少程序端与数据库的交互(如直接在 SQL 中完成数据格式化,无需拉取数据后处理);保证数据一致性:统一数据处理逻辑(如所有日期计算用 MySQL 函数,避免程序端不同模块处理方式不一致)。

2025-10-17 17:17:21 644

原创 MySQL 基本查询全实战:从 CRUD 到聚合分组,搞定 90% 的业务查询需求

插入:优先用 “指定列批量插入”,用处理冲突;查询:拒绝SELECT *,用WHERE精准筛选,分页排序;更新 / 删除:必须加WHERE条件,避免误操作全表;统计:用聚合函数实现数据分析,实现分组筛选。

2025-10-17 17:17:01 929

原创 MySQL 表约束全解析:从基础规则到实战,保障数据完整性与业务正确性

MySQL 表约束是 “数据质量的第一道防线”,合理配置约束能大幅减少程序端的校验逻辑,避免脏数据引发的业务故障。本文讲解的 9 种约束中,(主键)、unique key(唯一键)、not null(空属性)是所有表的 “必选项”,(自增长)适合生成唯一标识,(外键)适合低并发场景的表间关联。

2025-10-17 17:16:42 665

原创 MySQL 数据类型全解析:从选型到实战,避免 90% 的存储坑

MySQL 数据类型的选择没有 “最优解”,只有 “最适合的解”—— 理解每种类型的边界、精度和适用场景,才能避免存储浪费、数据丢失等问题。本文梳理的核心类型对比表和选型建议,可作为日常开发的 “字典”,遇到不确定的场景时快速查阅,确保数据存储的高效与准确。

2025-10-17 17:16:21 565

原创 MySQL 表操作全指南:从创建到删除,精通表级核心操作

创建表:需根据业务选择字段类型、字符集和存储引擎,推荐添加字段说明(comment查看表desc快速查看结构,查看完整配置;修改表支持新增、修改、删除字段,删除字段需先备份;删除表:谨慎操作,必须确认数据备份和业务无依赖。

2025-10-17 17:15:58 771

原创 MySQL 数据库操作实战:从创建到备份,精通库级核心操作

创建数据库:根据业务需求配置字符集(utf8mb4支持 emoji)和校验规则(区分 / 不区分大小写);字符集与校验规则:直接影响数据存储和查询结果,需提前与业务对齐;修改与删除:仅支持修改字符集 / 校验规则,删除需谨慎并备份;备份恢复:使用mysqldump和source,生产环境需定期自动备份;连接监控:通过排查异常连接,保障数据库安全。

2025-10-16 16:16:26 816

原创 MySQL 数据库基础入门:从概念到实战,搭建你的第一个数据库

本文从数据库的基础价值出发,带你认识了主流数据库的特点,掌握了 MySQL 的安装、连接、基本操作,理解了其分层架构、SQL 分类和存储引擎。作为程序员,MySQL 是必备技能之一,后续可进一步学习 “索引优化”“事务隔离级别”“分库分表” 等进阶知识,提升数据处理能力。

2025-10-16 16:09:58 657

原创 Reactor 反应堆模式实战:从原理到代码,打造高并发网络服务架构

Reactor 模式的本质是 “事件驱动的异步 IO 架构”,它通过一个 “反应堆”(Reactor 核心)统一管理所有 IO 事件,当事件就绪时(如 socket 可读、可写),自动分发到对应的业务处理逻辑,避免主动轮询或线程阻塞。架构设计:理解 Reactor 模式的 “事件驱动 + 反向调用” 思想,掌握四大组件的协同逻辑;代码实战:学会封装 Connection 管理连接状态,用 epoll 实现事件监控与分发,通过回调函数解耦 IO 与业务;高并发要点。

2025-10-16 16:07:00 578

原创 IO 多路转接之 epoll 详解:从原理到 LT/ET 实战,打造高性能网络服务

epoll 是 Linux 高并发网络编程的 “利器”,其核心优势在于 “无 FD 限制、低数据拷贝、高效就绪事件查找”,配合 ET 模式和非阻塞 IO,可实现百万级连接的高性能服务。

2025-10-16 16:03:53 822

原创 IO 多路转接之 select 详解:从原理到实战,掌握高并发 IO 的入门利器

select 是 IO 多路转接的 “入门级工具”,通过 “位图监控 + 批量等待” 的方式,实现了单线程处理多连接,解决了阻塞 IO 的线程膨胀问题。fd_set的初始化与操作(FD_ZEROFD_SETFD_ISSETselect 的阻塞逻辑与就绪条件;每次监控前需重新初始化fd_set的原因;select 的优缺点与适用场景。

2025-10-16 15:55:37 473

原创 深入理解五种 IO 模型:从阻塞到异步,掌握高性能 IO 的核心逻辑

五种 IO 模型的演进,本质是 “如何优化等待阶段”—— 从 “傻等”(阻塞 IO)到 “轮询”(非阻塞 IO),再到 “内核主动通知”(信号驱动 IO、IO 多路转接、异步 IO)。理解每种模型的核心差异,以及 “同步 / 异步”“阻塞 / 非阻塞” 的定义,是设计高性能网络程序的基础。

2025-10-16 15:53:07 717

原创 网络进阶实战:NAT、代理服务与内网穿透,解决跨网通信难题

家庭 / 企业网络访问外网:依赖路由器的 NAT 功能,无需额外配置;突破访问限制(如海外资源):使用正向代理(如 Shadowsocks、frp 正向代理);公网服务高可用:使用反向代理(如 Nginx)实现负载均衡和缓存加速;局域网服务公网访问:使用内网穿透(如 frp、ngrok),配合公网中间服务器;混合场景:例如 “本地开发的 API 需要外网测试”,可组合使用 “反向代理(Nginx)+ 内网穿透(frp)”,既隐藏中间服务器,又实现公网访问。

2025-10-16 15:49:23 636

原创 数据链路层深度解析:从以太网帧到 ARP 协议,理解数据如何在局域网内传输

数据链路层是 “局域网通信的基石”,它通过以太网帧格式定义了数据的包装标准,通过 MAC 地址实现了设备的唯一识别,通过 MTU 限制了传输尺寸,通过 ARP 协议解决了 IP 到 MAC 的映射问题 —— 这些机制共同确保了数据在局域网内的可靠、高效传输。

2025-10-16 15:45:55 644

原创 网络层深度解析:从 IP 协议到路由机制,理解数据如何跨网传输

网络层的核心是 “跨网段数据传输”,通过 IP 协议定义数据报格式,通过 CIDR 解决地址浪费,通过路由机制实现路径选择,最终让全球的主机能够互联互通。

2025-10-16 15:40:59 944

原创 传输层 TCP 协议深度解析:从可靠性机制到实战要点

TCP 是一个 “复杂但强大” 的协议,通过确认应答、超时重传、滑动窗口、流量控制、拥塞控制等机制,在可靠性和性能之间取得了极佳的平衡。它支撑了互联网中绝大多数需要可靠传输的场景,如网页浏览(HTTP)、文件传输(FTP)、远程登录(SSH)等。

2025-10-16 15:34:40 904

原创 传输层 UDP 协议深度解析:从端口号到实战注意事项

场景需求推荐协议理由低延迟优先(允许少量丢包)UDP无连接开销,传输速度快,适合实时场景可靠性优先(不允许丢包)TCP自带确认、重传、顺序保证,适合文件传输、支付接口数据量小、单次交互UDP首部开销低,无需建立连接,效率高(如 DNS)数据量大、需持续传输TCP无需应用层手动分包、处理可靠性,开发成本低(如 HTTP/HTTPS)

2025-10-16 15:29:18 1012

原创 HTTP 协议从入门到实战:理解核心原理与实现简易服务器

协议本质:HTTP 是客户端与服务器的 “约定格式”,关键在于遵循请求 / 响应的固定结构;核心概念:GET/POST 的区别、常见状态码的含义、URL 编码的作用,是日常开发的基础;实战逻辑:HTTP 基于 TCP,服务器的核心是 “读取请求→构造响应→发送响应”,遵循协议格式即可实现通信。

2025-10-16 15:23:57 563

原创 应用层自定义协议与序列化实战:从 TCP 粘包问题到 JSON 通信

粘包问题:多次发送的数据可能被合并接收(如 “1+1” 和 “2+3” 被拼成 “1+12+3”),或单次发送的数据被拆分接收(如 “12345” 被拆成 “12” 和 “345”),接收方无法识别数据边界。结构化数据传输:业务中需要传递的 “操作数 + 运算符”“结果 + 状态码” 等结构化信息,无法直接通过字符串传递(如 “1+1” 需要解析出11三个字段,解析逻辑脆弱且易出错)。应用层协议的本质是双方约定的结构化数据格式,它需要同时解决:如何识别数据边界(解粘包);

2025-10-16 15:16:50 544

原创 TCP Socket 编程实战:从单连接到线程池,打造高可用网络服务

V1(单连接):掌握 TCP 基础流程,但无法处理并发;V2(多进程):解决并发,但进程开销大;V3(多线程):降低开销,支持更高并发,但动态线程仍有开销;V4(线程池):消除动态线程开销,支持高可用并发,是生产环境的主流方案。

2025-10-16 15:06:41 795

原创 UDP Socket 编程从入门到实践:打造回显服务器、字典服务与聊天室

基础流程:创建 socket → 绑定地址(服务器)→ 收发数据(recvfromsendto关键技术:地址转换函数、禁止拷贝、回调函数解耦、线程池、互斥锁。最佳实践:服务器绑定INADDR_ANY、客户端不手动bind、多线程场景用inet_ntop。

2025-10-16 12:02:48 708

原创 深入理解计算机网络基础:从协议分层到 Socket 编程预备

协议是通信双方为实现数据交换而约定的规则集合,类比生活中的 “语言约定”:若 A 说中文、B 说葡萄牙语,即使双方都想沟通,也无法理解彼此。网络协议则定义了 “数据格式、传输方式、错误处理” 等关键规则,确保不同厂商的设备(如华为手机、苹果电脑、思科路由器)能顺畅通信。通用结构// 地址族(如AF_INET表示IPv4,AF_INET6表示IPv6)// 地址数据(不同协议格式不同)IPv4 专用结构(实际编程中使用,需强制转换为// 地址族(必须为AF_INET)// 端口号(网络字节序)

2025-10-15 14:59:10 719

原创 深入理解 Linux 线程同步与互斥:从原理到实战应用

线程同步与互斥是多线程编程的核心,掌握它们能有效解决资源竞争和执行顺序问题。互斥量:用于保护临界资源,确保同一时间只有一个线程进入临界区(适合 “独占资源” 场景)。条件变量:用于线程间的 “等待 - 通知”,实现同步(如生产者 - 消费者模型)。信号量:通用同步工具,支持多资源并发访问(适合 “共享资源池” 场景)。线程池:复用线程减少开销,适合大量短任务的场景(如 Web 服务器)。死锁避免:按固定顺序申请资源、一次性申请所有资源,破坏死锁的必要条件。

2025-10-15 14:58:49 586

原创 深入理解 Linux 线程:从内核原理到实战控制

Linux 线程是并发编程的核心工具,掌握其原理和使用方法能显著提升程序的性能和响应速度。线程本质:Linux 中线程是轻量级进程,共享进程的虚拟地址空间,仅维护独立的栈、寄存器等少量资源,切换成本低。内存布局:主线程栈位于用户态栈区,子线程栈位于共享区(mmap 区域),不可动态增长,需注意栈溢出问题。线程控制,需指定入口函数和参数。return,避免使用exit。回收资源,分离态线程无需等待。线程安全:共享资源需通过互斥锁等同步机制保护,避免数据错乱和竞态条件。

2025-10-15 14:58:20 972

原创 深入理解 Linux 进程信号:从原理到实战应用

Linux 信号是进程间异步通信的核心机制,掌握其原理和用法是 Linux 开发的必备技能。信号生命周期:产生(5 种方式)→ 保存(内核位图管理)→ 处理(递达动作:默认 / 忽略 / 自定义)。关键概念:未决(Pending)、阻塞(Block)、递达(Delivery)的区别;可重入函数与volatile的作用。函数选择:优先使用sigaction而非signalsigaction提供更可靠的跨平台支持和精细控制。

2025-10-15 14:57:56 1054

原创 深入理解 Linux 进程间通信:从原理到实战

进程是操作系统中独立的执行单元,拥有独立的地址空间。但在实际开发中,进程往往需要协作完成任务 —— 比如一个进程采集数据,另一个进程分析数据,这就需要通过 IPC 打破进程的 “隔离墙”。IPC 机制优点缺点适用场景匿名管道简单、无需手动删除仅亲缘进程、单向父子进程数据传递(如命令行管道)命名管道支持非亲缘进程需文件系统、单向无亲缘关系的进程通信(如跨程序数据传输)共享内存最快、无内核拷贝需同步机制、手动删除高频数据共享(如实时数据采集)消息队列结构化消息、按类型接收。

2025-10-15 14:52:43 1118

原创 深入理解 Linux 动静态库:从制作到加载的完整指南

通过-I指定头文件路径,-L# 假设头文件在./include,库文件在./lib场景推荐库类型理由嵌入式设备、独立工具静态库无依赖部署,适应资源受限环境系统工具、大型应用动态库节省内存与磁盘空间,便于更新库开发与调试动态库修改库代码后无需重新编译依赖程序追求运行速度静态库无需运行时链接,加载速度快。

2025-10-14 11:42:25 811

原创 深入理解 Linux Ext 系列文件系统:从磁盘物理结构到软硬链接

分层抽象:从磁盘物理结构(CHS)到逻辑地址(LBA),再到文件系统(块组、inode、数据块),每一层抽象都屏蔽了底层复杂性,为上层提供统一接口;分离存储:文件的 “属性(inode)” 与 “内容(数据块)” 分离存储,通过 inode 的指针实现关联,既便于属性查询,又利于内容的高效读写;块组管理:将分区划分为多个块组,每个块组包含完整的管理组件(超级块、位图、inode 表),实现故障隔离和高效访问;路径解析。

2025-10-14 11:41:29 638

原创 深入理解 Linux 基础 IO:从文件概念到自定义 Shell 重定向

理解了重定向的本质后,我们可以给自定义 Shell 增加(输出重定向)、>>(追加重定向)、(输入重定向)功能。核心思路是:解析用户命令中的重定向符号,在子进程中通过dup2实现重定向,再执行命令。通过本文的学习,我们从 “文件概念” 到 “系统调用”,再到 “重定向” 和 “缓冲区”,构建了完整的 Linux 基础 IO 知识体系。文件本质:Linux 下一切皆文件,文件 = 属性 + 内容,操作主体是进程;接口分层:库函数(如fopen)封装系统调用(如open),系统调用是内核接口;文件描述符。

2025-10-14 11:40:01 854

原创 Linux 进程控制全解析:从创建到 Shell 实现

/ 自定义环境变量(仅包含 PATH 和 TERM)// 需写全路径return 1;进程创建fork通过写时拷贝实现资源复用,父子进程共享代码、独立数据;进程终止exit处理清理逻辑,_exit直接终止,退出码反映执行结果;进程等待waitwaitpid回收僵尸进程,通过status解析退出状态;程序替换exec函数簇替换用户空间代码,execvp因自动搜 PATH 最常用;Shell 实现:核心是 “解析命令 → 内建命令直接执行 → 外部命令创建子进程替换”。

2025-10-14 11:39:11 904

原创 Linux 进程深度解析:从概念到虚拟地址空间

用户视角:正在运行的程序(如./a.out的执行过程);内核视角:包含代码、数据、PCB 的资源集合,是 CPU 调度的基本单位。进程是 Linux 系统的核心抽象,其设计贯穿硬件架构、操作系统内核、内存管理的多个层面。进程的本质:内核通过(PCB)描述进程,用链表 / 红黑树组织进程,实现对资源的分配与调度;进程状态:核心关注 R(运行)、S(可中断睡眠)、D(不可中断睡眠)、Z(僵尸)状态,避免僵尸进程导致内存泄漏;调度机制:O (1) 算法通过双队列实现高效调度,优先级由PRI和nice控制;

2025-10-14 11:35:27 581

原创 Linux 基础开发工具全攻略:从环境搭建到项目实战

Linux 基础开发工具是高效开发的基石,本文涵盖的yum/apt(环境搭建)、vim(代码编辑)、gcc/g++(编译)、(自动化构建)、git(版本控制)、gdb(调试),构成了完整的开发工具链。通过进度条实战案例,我们将这些工具串联,体验了从编码到运行的全流程。

2025-10-13 13:46:05 1523

原创 Linux 基础指令与系统核心:从入门到实战

Linux 指令是程序员与系统交互的 “桥梁”,熟练掌握本文讲解的核心指令(文件操作、目录管理、权限控制、压缩解压),能应对 90% 以上的日常开发和运维场景。善用帮助:忘记指令选项时,用man 指令查看手册(如man ls),或指令 --help查看简要帮助;权限安全:避免随意设置777权限,敏感目录(如/home)建议设置粘滞位;批量操作:结合管道()、重定向(>>)和脚本,提升指令效率(如日志分析、批量备份)。

2025-10-13 13:45:29 1083

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除