自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Rust所有权机制

Rust 的所有权(Ownership)系统是其最独特的特性之一,它使得 Rust 能够在没有垃圾回收的情况下保证内存安全。所有权机制是 Rust 内存管理的核心概念。

2025-04-25 17:46:02 245

原创 Tantivy 全文搜索引擎

但更快、更适合嵌入式场景。它主要用于构建搜索引擎、日志分析、推荐系统等应用。Tantivy 是一个高性能的全文搜索引擎库,使用。在 Rust 项目的。

2025-04-03 15:16:01 292

原创 数据库范式(Normalization)

是数据库设计中的一种规范,用于减少数据冗余、提高数据一致性,保证数据库结构合理性。数据库有 6 种常见的范式(1NF ~ 5NF + BCNF),但通常我们使用。:修改一个地方,其他地方也要改,否则数据不一致。这样,每个候选键都严格遵守 BCNF 规则。:删除某个信息时,可能会丢失其他有用数据。:无法插入某些数据(如外键为空),有时候为了性能可以适当降级(:同一数据存储多次,浪费空间。),可以考虑 BCNF。可能仍然有数据冗余。,可以拆分成多个字段。,如果有特殊需求(如。

2025-04-02 16:01:29 666

原创 中缀表达式转后缀表达式

在将(如)转换为(逆波兰表示法)时,决定了运算的顺序。()

2025-04-01 17:20:02 445

原创 MyCat (分库分表中间件)

支持 XA 事务、TCC 模式。(如日志分析、社交应用)(如金融、内容管理系统)(如电商、支付系统)

2025-03-28 17:39:59 456

原创 ACID —— 数据库事务的四大特性

之后,事务回滚,账户余额不会被扣除。在数据库管理系统(DBMS)中,

2025-03-28 13:40:08 765

原创 缓存击穿 vs 缓存穿透 vs 缓存雪崩

在缓存击穿(Cache Breakdown)问题中,当这个 Key 失效(过期或被删除)后,,导致数据库瞬间压力骤增,甚至可能崩溃。

2025-03-28 11:48:29 755

原创 Redis 知识点概览

Redis(Remote Dictionary Server)是一个。本文整理了 Redis 经典面试题,并提供详细解析。高性能键值存储数据库,支持多种数据结构,常用于。Redis Cluster 采用。当 Redis 占满内存后,使用。Redis 事务是通过。

2025-03-26 09:16:41 798

原创 MySQL 知识点概览

PS: 文章由GPT生成,个人整理而来。点击标题可跳转进入知识点对应的文章。

2025-03-25 10:58:15 1879

原创 MySQL 慢查询如何优化?

当 MySQL 查询执行速度较慢时,会影响系统的性能和用户体验。优化慢查询的关键在于。本文将系统地介绍 MySQL 慢查询的分析方法和优化方案。关键字,可以帮助分析 SQL 的执行计划,找出查询的优化点。:慢查询日志可能影响数据库性能,建议在。会查询所有列,增加 IO 开销。可提供 SQL 执行过程中。(磁盘排序),影响查询性能。)时,单表查询性能可能下降。,可以记录执行时间超过。阈值的 SQL 语句。,避免不必要的数据传输。MySQL 排序操作(都包含在索引中,可以。

2025-03-25 10:57:44 515

原创 MySQL 死锁及解决方案

(Deadlock)。MySQL 需要检测和解决死锁,否则数据库可能会陷入死循环,影响系统可用性。指两个或多个事务在持有某些资源的同时,又等待对方释放资源,导致事务无法继续执行的情况。在 MySQL 事务中,多个事务同时竞争相同资源(如表、行)时,可能会。引擎可以自动检测死锁,并选择。事务,另一个事务可以继续执行。某个事务来解除死锁。

2025-03-25 10:49:57 590

原创 分库分表方案

(Sharding)方案,将数据拆分到多个库或多个表中,以提升查询效率、降低单点压力。拆分,将同一表的数据分散存储到多个数据库或多个表。拆分,将不同的表存储到不同数据库。变复杂,可能需要业务层处理。,不同业务模块读写分离。,MySQL 需使用。,不同业务分库管理。

2025-03-25 09:52:25 811

原创 MySQL 主从复制

负责处理写入操作,从库(Slave) 负责同步数据,实现读写分离,提高数据库的可用性和性能。(Replication)是。

2025-03-25 09:39:09 712

原创 计算机网络知识点概览(分类整理)

PS: 文章由GPT生成,个人整理而来。点击标题可跳转进入知识点对应的文章。,因为在实际网络中,它们由应用程序自己处理。计算机网络是面试中的高频考点,涵盖。,就近提供内容,提高访问速度。

2025-03-25 09:23:51 675

原创 CDN(内容分发网络)如何加速访问?

CDN(Content Delivery Network,内容分发网络)是一种通过将内容缓存到多个分布式的服务器节点上,使得用户可以从离自己最近的节点获取内容,从而加速网站和应用的访问速度、降低延迟、减少带宽消耗和提高服务的可用性的技术。CDN 通过分布式的网络结构,将静态内容(如图片、视频、CSS、JavaScript 文件等)存储在多个地理位置不同的缓存服务器上。当用户访问网站时,CDN 系统会根据用户的地理位置将请求路由到最近的缓存节点,快速将内容传递给用户,从而加速访问。

2025-03-25 09:23:24 507

原创 MySQL 的存储引擎有哪些?区别是什么?

MySQL 提供了多种存储引擎,每种存储引擎适用于不同的应用场景。

2025-03-25 09:22:43 459

原创 MySQL 的四种事务隔离级别

MySQL 的事务隔离级别主要用于控制不同事务之间的可见性,防止数据不一致问题。

2025-03-25 09:22:13 811

原创 MySQL 索引的类型

MySQL 提供多种索引类型,不同索引在不同场景下有不同的优化作用。

2025-03-25 09:21:43 796

原创 MySQL 索引失效的情况

让索引失效,因为 MySQL 不能建立索引的前缀匹配。:MySQL 需要扫描全表来找出所有不符合条件的行。索引能大幅提高查询速度,但如果使用不当,索引可能会。不能利用索引,MySQL 需要扫描所有数据行。不能被 B+ 树索引有效索引,因为它。列的所有值执行计算,导致索引失效。没有索引,整个查询不会使用索引。没有索引,排序可能导致索引失效。不是唯一索引,可能导致索引失效。,说明索引失效,需要优化。,导致 MySQL 进行。,MySQL 需要进行。查询就能使用索引了。

2025-03-25 09:21:15 658

原创 如何优化 MySQL 查询?

如果 Redis 缓存中有数据,直接返回,避免查询数据库!,涵盖索引、SQL 语句、表设计、查询缓存等方面。,否则 MySQL 可能创建临时表,影响性能。偏移量越大,MySQL 需要扫描的数据越多!可以帮助你分析查询的索引使用情况。:事务时间过长会锁定数据,影响并发。优化 MySQL 查询的核心目标是。或 MySQL 查询缓存。:清理碎片,提高查询性能。

2025-03-25 09:20:50 899

原创 EXPLAIN分析 SQL 语句

它可以帮助你分析 SQL 语句的执行计划,找出查询的瓶颈,优化数据库性能。MySQL 会返回查询执行计划,帮助我们分析索引使用情况、查询类型等。如果你用的是 MySQL 8.0,列显示额外的信息,我们要尽量。MySQL 8.0 提供了。是 MySQL 提供的。,查询效率大幅提升。

2025-03-25 09:20:10 881

原创 MySQL 的事务特性(ACID)

那么账户 1 的 500 元已经扣掉了,但账户 2 没有收到,这会导致数据错误。特性,确保数据库操作的可靠性和一致性。MySQL 会拒绝这条记录,保证数据一致性。,即使数据库崩溃,数据仍然能恢复。,表示每次事务提交时都会立即。,不会出现部分执行的情况。,不会出现数据损坏或丢失。MySQL 事务遵循。一致性确保数据库从一个。,保证数据不会丢失。

2025-03-25 09:19:41 723

原创 MVCC(多版本并发控制)

存储引擎中,每一行数据都包含两个。维护多个数据版本,实现并发控制。

2025-03-25 09:18:54 886

原创 DNS 解析过程

是将域名(例如:www.example.com)转换为IP地址(例如:192.0.2.1)的系统。互联网中的计算机和设备通过 IP 地址相互通信,而 DNS 提供了一种将易于记忆的域名与对应的 IP 地址进行映射的方式。DNS 的主要目的是让用户能够通过域名访问网站,而不需要记住复杂的 IP 地址。浏览器检查本地缓存。操作系统检查本地 DNS 缓存。本地 DNS 服务器查询缓存,如果没有则递归查询。根 DNS 服务器→TLD 服务器→权威 DNS 服务器。返回 IP 地址。

2025-03-24 11:27:51 429

原创 什么是 HTTPS?如何保证安全?

HTTPS(HyperText Transfer Protocol Secure,安全超文本传输协议)是一种基于 HTTP 的安全协议,使用加密技术确保在客户端与服务器之间传输的数据的安全性。它在 HTTP 的基础上加入了 SSL/TLS 协议来加密数据传输和身份验证。数据加密:防止数据在传输过程中被窃取或篡改。数据完整性:确保数据在传输过程中不被篡改。身份验证:验证访问的网站确实是它所声称的站点,避免中间人攻击。加密:使用对称加密(会话密钥)和非对称加密(公钥/私钥)保护数据的机密性。身份验证。

2025-03-24 11:23:39 862

原创 HTTP 1.0 vs 1.1 vs 2.0 vs 3.0

每个版本的HTTP协议都有其特定的应用场景和优势。HTTP 1.0和1.1适用于较简单的网页和低带宽的场景,而HTTP 2.0和3.0在高延迟、高并发和复杂网页加载时提供更好的性能和更低的延迟。

2025-03-24 10:53:30 890

原创 TCP 滑动窗口 & 拥塞控制?

窗口是TCP连接中的一个缓冲区,包含了一定数量的字节(数据包)。滑动窗口表示接收方的缓冲区能够接收的字节数。发送方的窗口大小决定了在没有接收到确认(ACK)之前,能够发送多少数据。

2025-03-24 10:51:44 354

原创 为什么 TCP 断开连接要四次挥手?

TCP 断开连接需要四次挥手(Four-Way Handshake)是因为(双向通信)的协议,在连接断开时,客户端和服务器都需要独立确认关闭各自的连接。每个方向的传输都必须单独关闭,因此需要四次交换信息来确保连接完全关闭,避免数据丢失或错误。

2025-03-24 10:42:54 321

原创 为什么 TCP 需要三次握手?

TCP 需要三次握手(Three-Way Handshake)来建立连接,目的是为了确保通信双方都能够相互确认连接的建立,并且能够保证数据传输的可靠性。下面详细解释为什么需要三次握手,以及它的过程和目的。三次握手的设计既保证了可靠的数据传输,又优化了连接建立的效率。它确保了双方都能够同步序列号,并且确认了对方准备好通信,从而避免了连接不可靠的风险。

2025-03-24 10:41:19 637

原创 TCP 和 UDP 的区别?

TCP(Transmission Control Protocol)和 UDP(User Datagram Protocol)是。,它们在数据传输上有着不同的特点和使用场景。

2025-03-24 10:34:20 376

原创 OSI 七层模型 & TCP/IP 五层模型的区别?

TCP/IP 是实际用于互联网的协议模型,尤其是与 OSI 七层模型不同的是,TCP/IP 模型中的层数减少,并且将会话层和表示层合并进应用层,优化了协议的使用。它是基于传输控制协议(TCP)和网际协议(IP)构建的网络通信模型。,其目的是通过将网络协议分为不同的层次来理解和规范网络通信。OSI 模型将计算机网络分为 7 层,每一层的功能是独立的,负责不同的任务。,而 OSI 只是一个理论模型,因此它有更多的层次设计。设计的,因此去除了 OSI 模型中的表示层和会话层,TCP/IP 模型是根据。

2025-03-24 10:03:58 570

原创 内核(Monolithic vs Microkernel)

支持复杂功能,如驱动程序和扩展模块(Linux Kernel Modules, LKM)。:即使某个服务(如设备驱动)崩溃,内核本身不会受到影响,系统仍然可用。:系统调用需要 IPC 机制,涉及用户态和内核态切换,带来。:由于驱动程序在用户态运行,不兼容传统的单体内核驱动模型。:所有模块共享内核空间,某个组件的漏洞可能影响整个系统。:需要更精细的调度和进程间通信机制,开发难度较大。:服务运行在用户态,恶意程序更难影响内核。:可以动态添加功能,而不需要修改核心内核。:所有功能都在内核态运行,调用开销低。

2025-03-24 09:35:28 300

原创 分时系统 & 实时系统的区别?

分时系统(Time-Sharing System)和实时系统(Real-Time System)是。,它们的主要区别在于。

2025-03-24 09:32:46 420

原创 解决死锁的方法

检测和恢复死锁需要额外开销,可能导致进程回滚或终止。:限制太多,可能降低资源利用率或导致进程长时间等待。不同系统应选择合适的策略,保证效率和安全性!:不需要预先限制资源申请,系统资源利用率较高。:可能导致程序卡死,用户需要手动结束进程。:实现简单,不影响性能。死锁的解决方案主要有。:比预防死锁更加灵活。,实现复杂,开销较大。

2025-03-24 09:23:23 315

原创 死锁产生的 4 个必要条件

对方释放资源,导致所有进程都无法继续执行。形成循环,所有进程相互等待,死锁发生!要产生死锁,必须同时满足以下。

2025-03-24 09:21:45 386

原创 文件系统的索引方式

文件系统需要**索引(Indexing)**来存储和管理文件在磁盘上的位置。(如 ext2/ext3):使用。(如 NTFS、HFS+):使用。:大文件存储,Linux 的。(如 FAT 文件系统):使用。(如 ext4、XFS):使用。:小文件,存储方式类似。(直接+间接索引)。

2025-03-24 09:18:25 410

原创 虚拟内存是什么

解决 RAM 不足问题,支持多任务,提高安全性。访问 Swap 会降低性能,是常见的虚拟内存实现方式。,提高系统的多任务能力。👉 这样,每个进程都能。,提高系统的并发能力。

2025-03-24 09:02:21 364

原创 GitHub Copilot快捷键命令

主要用于引用项目范围的内容,让 Copilot 参考整个代码库,而不仅仅是当前文件。GitHub Copilot Chat 提供了 @主要用于代码解析、优化、调试、测试等任务。(用于代码操作和优化)。(用于访问项目内容)和 /

2025-03-22 09:00:00 367

原创 分页 & 分段的区别

(因为段大小不固定,物理内存可能出现零散的空闲块)。(2 页 4KB + 1 页 2KB),分别映射到。,减少外部碎片,提高内存利用率。,容易管理,减少外部碎片。(页框用不满的部分浪费)。,提高可读性和可管理性。,提高效率和灵活性!中,每个段可以存放在。

2025-03-21 17:29:43 503

原创 用户态和内核态

用户态(User Mode)和内核态(Kernel Mode)是操作系统为。(内存、文件系统、I/O 设备)。(如读取磁盘、修改进程调度)。进程在运行过程中,可能需要从。(如磁盘、网络、CPU)。(如应用程序的内存)。(如中断、进程调度)。(如 Linux 的。

2025-03-21 17:11:22 322

空空如也

空空如也

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

TA关注的人

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