mysql like模糊查询如何优化
MySQL LIKE模糊查询优化是一个常见问题,主要原因是LIKE以通配符开头的查询无法使用B-Tree索引。以下是详细的优化方案: 一、索引优化方案 1. 前缀查询优化(LIKE 'prefix%') -- 可以使用索引 SELECT * FROM users WHERE name LIKE '张%'; -- 创建索引 CREATE INDEX …
2025-12-27 12:49
|
666 字
|
7 分钟
Redis 为什么要自定义 SDS?
Redis 自己实现 SDS(Simple Dynamic String)主要是为了克服 C 语言原生字符串在性能、安全性和功能性上的局限,以满足其作为高性能数据库的苛刻要求。 下表清晰地展示了 SDS 与 C 字符串的核心差异: 对比维度C 字符串Redis SDS获取长度复杂度O(N),需遍历直到 \0O(1),直接读取 len属性缓冲区溢出…
2025-12-27 12:45
|
944 字
|
4 分钟
在生产环境中,如果Mysql的CPU占用率突然彪到了100%,你会如何去排查?
当 MySQL CPU 使用率达到 100% 时,需要系统性地排查。以下是紧急排查步骤和优化建议: 一、紧急处理步骤 1. 快速查看当前运行进程 -- 查看正在执行的查询 SHOW FULL PROCESSLIST; -- 或使用 sys 库(MySQL 5.7+) SELECT * FROM sys.processlist WHERE comma…
2025-12-27 12:20
|
526 字
|
5 分钟
MySQL 的索引类型有哪些?
索引是帮助MySQL高效获取数据的数据结构。就像书本的目录一样,可以快速定位到需要查找的内容。以下是MySQL中索引的主要分类和详解。 一、按数据结构划分 这是最核心的分类方式,决定了索引的底层实现和适用场景。 B+Tree索引 描述:这是MySQL中最常用、最主流的索引类型。InnoDB和MyISAM存储引擎都支持B+Tree索引。 特点: 有序…
2025-12-27 12:13
|
1192 字
|
5 分钟
MySQL char 和 varchar 的区别是什么?
在MySQL中,CHAR和VARCHAR是两种最常用的字符串数据类型,它们看似相似,但在存储方式、性能和适用场景上有着本质区别。理解这些差异对数据库设计和性能优化至关重要。 核心区别对比 特性CHARVARCHAR存储方式定长字符串变长字符串空间占用固定长度,不足部分用空格填充实际数据长度+长度前缀(1-2字节)最大长度255字符65,535…
2025-12-27 12:08
|
1128 字
|
7 分钟
MySQL InnoDB 和 MyISAM 有什么区别?
MySQL 作为最流行的开源关系数据库之一,提供了多种存储引擎,其中 InnoDB 和 MyISAM 是最常用且最具对比性的两种。理解它们的核心差异对于数据库设计、性能优化和正确选型至关重要。 核心差异概览 特性对比InnoDBMyISAM事务支持支持ACID事务不支持事务锁级别行级锁表级锁外键约束支持不支持崩溃恢复有crash-safe恢…
2025-12-27 12:06
|
1618 字
|
7 分钟
MySQL 深度分页如何优化?
什么是深度分页? 深度分页是指,当某张表数据量极大,查询的页码又非常靠后,导致最终分页 SQL 中的 offset 偏移量很大,数据库需要扫描并丢弃大量记录,导致性能急剧下降的查询问题。 比如说有一张订单表,查询页码为 100001 的数据,每页展示 10 条数据,其分页 SQL 如下: SELECT * FROM orders…
2025-12-27 12:03
|
1085 字
|
7 分钟
什么是 MySQL 回表查询?如何避免?
什么是回表查询? 回表查询是指:数据库在使用非主键索引(二级索引)进行查询时,首先在二级索引树中找到符合条件的主键值,然后再根据这些主键值回到主键索引(聚簇索引)树中查找完整行数据的过程。 这个过程,就像 “查字典”:先查 偏旁部首目录 (二级索引)找到对应的页码(主键ID),然后再翻到 正文页 (主键索引)看详细内容。 原理:InnoDB 的…
2025-12-27 11:03
|
642 字
|
5 分钟
MySQL 自增主键用完了怎么办?
面试考察点 此题主要考察点在于: 基础知识深度:考察你是否真正理解自增主键(AUTO_INCREMENT)的实现机制、限制(数据类型范围)及其作为业务“唯一标识”的本质,而非仅仅会使用。 问题排查与解决能力:考察你在面对一个看似低概率但后果严重的生产事故预兆或已发生事件时,系统性的分析、定位和解决思路。 系统设计与前瞻性思维:面试官不仅仅想知道“用…
2025-12-27 10:53
|
1607 字
|
7 分钟
MySQL 为什么不推荐使用外键?
面试考察点 面试官提出这个问题,通常旨在考察你对数据库设计的深层理解、工程实践中的权衡能力,以及对互联网架构模式的认知。具体考察点包括: 对数据库性能影响的理解:面试官不仅仅是想知道 “外键影响性能”,更是想知道你是否能具体说明性能损耗的来源(如锁、检查开销、事务回滚)及其在高并发场景下的放大效应。 对架构与耦合性的思考:考察你是否具备服务解耦和分…
2025-12-27 10:45
|
1620 字
|
8 分钟