MySQL 索引常见面试题

一、什么是索引? MySQL 索引是用于提高数据库查询性能的一种数据结构。它类似于书籍的目录,可以帮助我们更快地找到所需的信息。索引能够减少数据库的扫描量,加速查询。 举一个生活中的例子: 假如你在图书馆,里面存放了成千上万的书籍。如果你想要找到一本需要的书,你会怎么做呢? 没有索引的情况: 从第一


MySQL 一行记录是如何存储的?

MySQL 数据库的目录位置 首先,我们在 MySQL 控制台中执行SHOW VARIABLES LIKE 'datadir';就可以看到数据库文件的存放目录。 在 Linux 的默认路径中: Variable_name Value datadir /var/lib/mysql 在 Window 的


执行一条SQL查询语句,期间发生了什么?

MySQL 的架构大致可分为两层:Server 层 和 存储引擎层。 Server 层: Server 层是MySQL的核心,负责处理大多数的核心服务功能,如连接器、查询缓存、预处理器、优化器、执行器以及所有的内置函数(如数学、日期和时间、加密函数)等。此外,还有跨存储引擎的功能(如存储过程、触发器


Redis缓存穿透、击穿、雪崩问题

一、缓存穿透问题 缓存穿透是指客户端请求的数据在缓存和数据库中都不存在,这样缓存永远不会生效,而且所有的请求都会经过数据库。 常见的解决方案有: 缓存空对象: 优点:实现简单,维护方便 缺点: 额外的内存消耗 可能造成短期的不一致


Redis缓存更新策略

一、redis缓存更新策略 缓存更新是Redis为了节约内存而设计出来的一个东西,主要是因为内存数据宝贵,当我们向Redis插入太多数据,此时就可能会导致缓存中的数据过多,所以Redis会对部分数据进行更新,或把他叫为淘汰更合适。 自动淘汰: 当Redis内存达到max-memory限制时,启动自动