对编程相关技术分享

MySQL 索引的最左前缀匹配原则是什么

MySQL 的最左前缀匹配原则主要是针对复合索引(也称为联合索引)而言的。其核心思想是:只有查询条件中包含索引最左侧(第一列)开始的连续一段列,才能让 MySQL 有效地利用该索引。 一、 复合索引的结构 二、 最左前缀匹配原则的基本概念 三、 ......

数据库 面试 0 01-04-2025

为什么 MySQL 选择使用 B+ 树作为索引结构

MySQL选择使用B+树作为索引结构主要是因为B+树在数据存储、查询优化、范围查询等方面具有显著优势。 一、 B+树的结构特点 B+树是一种自平衡的多路查找树,它的特点包括: B+树图示 以下是一棵 B+ 树的典型结构(图源网络,侵删): 二、 ......

数据库 面试 0 01-04-2025

TypeScript:await 关键字

本文详细介绍了 TypeScript 中 await 的工作原理、语法要求、与 Promise 的关系以及实践中需要注意的问题,同时针对代码示例进行了优化和补充说明。 1. 基本概念 2. 语法要求 3. 工作原理 4. 与 Promise 的比......

前端 编程语言 0 30-03-2025

Armstrong公理

什么是Armstrong公理 Armstrong公理是一套规则,用来推导“函数依赖”关系。函数依赖是关系数据库设计中的核心概念,它指的是某个属性或属性组合能够决定另一个属性或属性组合的值。例如,如果我们知道某个学生的学号(假设学号是唯一的),那么......

数据库 软考 0 29-03-2025

堆排序

一、 堆的基本概念 堆是一种完全二叉树,可以分为两种类型: 堆排序通常使用大顶堆来实现升序排序。排序时,首先构建大顶堆,然后将堆顶元素与数组最后一个元素交换,再对剩余的部分重新构建大顶堆,如此循环,直到整个序列有序。 二、 堆排序的主要步骤: 1......

数据结构与算法 软考 0 23-03-2025

Java:Map 接口

在 Java 中,Map 是一种非常重要的数据结构,用于存储键值对(key-value pairs),它提供了一种将键映射到值的机制。 1. Map 接口详解 Java 中的 Map 接口定义了一种键值对的数据结构,其中: 主要方法 put(K ......

编程语言 0 22-03-2025

二叉平衡树

二叉平衡树(Balanced Binary Tree)是一种在操作效率上非常优秀的数据结构,其核心思想是保持二叉树的“平衡”,从而使树的高度尽可能低,以保证搜索、插入和删除操作都能在对数时间内完成。 一、 基本概念 二、 主要类型 1. AVL ......

数据结构与算法 软考 0 22-03-2025

简单选择排序

简单选择排序是一种基础的排序算法,其主要思想是:从待排序的序列中不断地选择最小(或最大)的元素,然后将其放到序列的起始(或末尾)位置。 算法步骤 1. 整体思路 选择排序的基本思想是将一个无序数组分成两部分: 在每一轮排序中,从未排序部分中选出最......

数据结构与算法 软考 0 22-03-2025

TCP的三次握手

TCP 的三次握手是建立可靠连接的过程,主要目的是在客户端和服务器之间同步双方的初始序列号(Sequence Number),确保双方能够正确传输数据。 第一次握手(SYN) 第二次握手(SYN+ACK) 第三次握手(ACK) 总结 通过这个过程......

面试 0 21-03-2025

MySQL是如何实现事务的

在MySQL中(主要以InnoDB为例),事务的实现依赖于多个机制协同工作,确保ACID特性(原子性、一致性、隔离性、持久性) 1. 锁机制 2. Redo Log(重做日志) 3. Undo Log(撤销日志) 4. MVCC(多版本并发控制)......

数据库 面试 0 21-03-2025