3.1k3 分钟

2025-01-15🌱上海: ☀️ 🌡️+4°C 🌬️↓19km/h # MySQL中使用索引一定有效么? # 简要回答 不一定有效 查询条件中不包含索引列 低基数列索引效果不佳 查询条件复杂且不匹配索引的顺序 对于小表,全表扫描可能比使用索引开销更小 # 补充回答 排查索引效果的方法:使用EXPLAIN命令,在查询语句前添加EXPLAIN可以查看MySQL选择的执行计划,了解是否使用了索引,使用了哪个索引,以及扫描的行数等信 红色为需要重要关注的信息 id:执行计划中每个操作的唯一标识符。对于一条查询语句,每个操作都有一个唯一的id。但是在多表join的时候,一次e
4.8k4 分钟

# MySQL三层B+树能存多少数据? 具体答案题解很详细,这里只补充下思路及扩展知识点。 # 答题思路 一般这种题,更多的是考察对于MySQL存储格式的了解,后续遇到类似的面试题该如何思考?接下来按步骤分析以下。 了解MySQL的存储格式及对应的结构(如每页默认大小16KB,B+树的结构) 假设数据大小,估算每页可存储数据数量 假设索引键和指针大小,估算单个节点的扇出数量 通过(单页存储数据量×单个节点的扇出量2 )计算总数据量,这里三层就是2次方,n层就是n-1次方。 # 扩展知识(了解即可) # InnoDB的存储格式 # 页结构 # 引导思路及假想面试 Q :上面问题回答的不错
6k5 分钟

2025-01-15🌱上海: ☀️ 🌡️+3°C 🌬️↓19km/h # MySQL InnoDB引擎中的聚簇索引和非聚簇索引有什么区别? # 简要回答(重要) 聚簇索引的非叶子节点存储的是索引值,叶子节点存储的是完整的数据记录,一个表只能有一个聚簇索引,一般是表的主键,主要用于范围查询和排序。 非聚簇索引的非叶子节点存储的也是索引值,但是叶子节点存储的是数据行的主键或对应的索引列,一个表可以有多个非聚簇索引,非聚簇索引由称为辅助索引,二级索引等,主要用于快速定位要查找的列。 # 补充回答(引导面试官主动提问) 聚簇索引简单理解就是把索引和数据记录放在一起了,通过索引就可以