面试通关特训营打卡第一天 ✅
2024 - 12 - 24
大家好,我是无情的前端试炼师。
作为一名前端狗,踩后端的领域简直像是参加邻居家孩子的生日派对:尴尬而不失礼貌。
昨天正好参加了面试鸭最近新出的面试通关特训营,第一天的任务就是完成以下三道题目:
1)MySQL InnoDB 引擎中的聚簇索引和非聚簇索引有什么区别?
2)MySQL 的存储引擎有哪些?它们之间有什么区别?
3)MySQL 的索引类型有哪些?
我简单通俗地说下我自己的想法与总结,涉世不深,大家不喜勿喷 ~
MySQL InnoDB 引擎中的聚簇索引和非聚簇索引有什么区别?
聚簇索引(Clustered Index)和非聚簇索引(Non-Clustered Index)的区别?通俗点说:
1)聚簇索引是数据库的“硬盘快递小哥”,直接把数据和索引装在一块包裹送到你手里。一张表只能有一个聚簇索引,通常它是主键。
2)非聚簇索引则是“快递柜通知小哥”,它会告诉你数据在哪个快递柜里,然后你得跑过去取。
举个例子,假设你是饭店老板,聚簇索引就是菜单上的主菜编号(主键),直接告诉服务员上哪道菜;非聚簇索引则是“甜品推荐”,告诉你甜品的位置,你还得看完位置后再叫服务员。
MySQL 的存储引擎有哪些 ? 它们之间有什么区别 ?
MySQL 的存储引擎就是一群竞争激烈的选秀选手:
1)InnoDB:稳重大哥,支持事务,靠 ACID 特性让你数据存储放心。
2)MyISAM:轻量级小弟,事务不管,查询快得飞起,适合静态数据表。
3)Memory:内存男孩,快得像 SSD,但断电就失忆。
4)CSV:文艺青年,直接写 CSV 文件,适合数据迁移,但功能相当“朴素”。
5)Archive:长存之王,只写不删,查询堪比考古。
我的建议是:95% 的场景用 InnoDB,大不了 MyISAM 做个备胎,但别全指望 Memory,内存跑光了你会心跳加速。
MySQL 的索引类型有哪些 ?
作为前端写 CSS 的我,当初听到“索引”时第一反应是 z-index,后来才知道 MySQL 索引还挺像前端的 DOM 结构树——别问为什么,我自己也蒙。
MySQL 的索引分这几类:
1)普通索引:能帮你快速找到值,像搜索引擎的“关键词匹配”。
2)唯一索引:普通索引的高冷版,不允许重复,像独一无二的身份证号。
3)全文索引:偏爱 MyISAM 的大文豪,擅长匹配长文本。
4)复合索引:一箭多雕,多个列一起用,性能杠杠的。

