MySQL简历话术

点开专栏配合旁边目录食用更佳

本专栏只总结最重要的八股,简历对应的

简历话术:

熟悉MySQL基础(索引、事务、存储引擎、MVCC、日志、主从同步)及MyBatis ORM框架整合,具备一定的SQL调优能力。

1. 索引

1.1 分类

分类维度 索引类型 核心特点 适用场景
数据结构 B+Tree 索引 支持等值、范围查询和排序 是MySQL默认索引结构。B+数据放在叶子节点,可以腾出空间让分支节点组织更宽的树,减少磁盘IO次数。叶子节点双向链表,所有数据都维护在叶子节点–对范围查询和排序性能更好
Hash 索引 查询速度极快,但仅支持等值查询 等值查询,如缓存表、键值对数据
字段特性 主键索引 唯一且非空,聚簇索引 表的唯一标识,常用作聚簇索引
唯一索引 确保列值的唯一性,允许一个NULL 保证数据唯一性,如身份证号、邮箱等
普通索引 最基本的索引,无任何限制 加速常规查询
前缀索引 只索引列值的前缀,节省空间 索引长字符串列(如VARCHAR(255)
字段个数 单列索引 只包含一个列 针对单个列的查询条件
联合索引 包含多个列,遵循最左前缀原则 针对多个列的复杂查询条件
物理存储 聚簇索引 叶子节点存储完整数据行 InnoDB表的主键,决定数据物理顺序
二级索引 叶子节点存储索引列和主键值 除主键查询外的所有查询

1.2索引设计原则

1.2.1 控制数量

控制索引数量, 索引不是越多越好, 太多了占空间, 维护索引需要的代价也越多, 增删改反而会比较慢.

1.2.2 对谁建立索引?

查询频繁的列建立索引,选择区分度高的列做索引,对于经常where, order by, group by的列建立索引

1.2.3 覆盖索引,避免回表

1.3 索引使用原则(索引失效场景)

  • 不能用 最左前缀匹配原则;索引列运算/函数会使索引失效; LIKE 查询,前导通配符(LIKE '%abc')会导致索引失效;索引列发生了隐式类型转换(如字符串字段传了数字)

  • 不想用 在WHERE子句中,OR 连接的条件里,只要有任意一边 没有索引 → 整个 WHERE 索引失效,全表扫描。id 可以用索引快速找,name 没有索引,必须全表扫,既然 name 必须全表扫,那 MySQL 心想: 反正都要全表扫一遍了,我直接全表扫,同时判断两个条件,比 “索引扫 + 全表扫” 更快。

2. 事务

2.1 事务隔离级别

链接事务隔离级别详解 有脏读、不可重复读、幻读这三种并发问题。 数据库用读未提交、读已提交、可重复读、串行化 这四种级别来解决它们。MySQL默认是可重复读。

alt

2.2 事务四大特性

事务:一组 SQL 语句的执行单元,要么全部成功,要么全部失败。

  1. 原子性(Atomicity)
    事务是不可分割的最小工作单元。事务中的操作序列,若任意一步失败,则已执行的操作全部回滚,如同整个事务从未发生。
    实现机制:通过 undo log(回滚日志)将数据恢复到事务开始前的状态。

  2. 一致性(Consistency)
    事务执行前后,数据库从一种一致状态转变为另一种一致状态,数据的完整性约束未被破坏。例如转账业务中,无论事务成功与否,转出方与转入方的账户总额保持不变。
    :只要保证了原子性、隔离性、持久性,一致性自然得以实现。

  3. 持久性(Durability)
    一旦事务提交,其对数据库的修改就是永久性的,即使随后发生系统故障也不会丢失。
    实现机制:通过 redo log(重做日志)在系统重启后恢复已提交的事务修改。

  4. 隔离性(Isolation)
    多个用户并发访问数据库时,数据库为每个事务开启独立的数据操作空间,一个事务的执行不被其他并发事务干扰。各事务之间相互隔离,如同串行执行。
    实现机制:MVCC+undo log解决读写冲突,锁解决写写

3. 存储引擎

  • InnoDB(MySQL默认引擎):支持事务、外键、行级锁、MVCC,适合高一致性场景。
  • MyISAM:表级锁,无事务/外键,适合只读或低并发写入。
  • Memory:内存存储,极快但易失,曾被用作缓存,现多由Redis替代。

4.MVCC

链接 提高读写并发

5.日志

undo log(回滚日志):事务回滚和 MVCC, 事务中的原子性 redo log(重做日志):崩溃恢复, 提高写入速度,事务中的持久性 binlog (归档日志/二进制日志):主要用于数据备份和主从复制;

写入顺序+两阶段提交

6. 主从同步

主库写binlog,从库:I/O线程 → 接收Binlog并写入Relay Log SQL线程 → 读取Relay Log并重放SQL语句

优点: 高可用性 - 主库故障时可快速切换到从库 读写分离 - 主库负责写操作,从库承担读请求,提升并发能力 数据备份 - 从库可作为实时备份,不影响主库性能

缺点: 从库的数据总是最终一致性,而非实时一致。

7.SQL调优

链接

#简历#
简历技能对应的核心八股 文章被收录于专栏

针对面试,整理简历上写的每行技术点+对应完整话术和扩展点,快速速成

全部评论
mark
点赞 回复 分享
发布于 昨天 18:03 重庆

相关推荐

评论
2
1
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务