MYsql面试题

532 字
3 分钟
MYsql面试题

索引#

索引是数据库的”目录”,用空间换时间,加速查询但拖慢写入。 — 1️⃣ 普通索引:加速查询 CREATE INDEX idx_name ON employees (name);

— 2️⃣ 唯一索引:加速查询 + 保证唯一性(如手机号) CREATE UNIQUE INDEX idx_phone ON users (phone);

— 3️⃣ 联合索引:多列组合查询(遵循最左前缀原则) CREATE INDEX idx_dept_salary ON employees (dept, salary);


事务#

四大特性:#

原子性(A) 事务不可分割,要么全做要么全不做 转账:扣钱和加钱必须同时成功。 一致性(C) 事务前后数据库状态保持一致 转账后总金额不变(1000+500=900+600)。 隔离性(I) 多个事务并发执行时互不干扰 你转账时,别人看不到你未提交的修改。 持久性(D) 事务提交后,数据永久保存 提交后即使数据库重启,钱也不会少。

-- 账户表 accounts
-- id | name | balance
-- 1 | 张三 | 1000
-- 2 | 李四 | 500
-- 张三给李四转 100 元
START TRANSACTION; -- 开启事务
UPDATE accounts SET balance = balance - 100 WHERE id = 1;
UPDATE accounts SET balance = balance + 100 WHERE id = 2;
COMMIT; -- ✅ 两条都成功,提交
-- 或
ROLLBACK; -- ❌ 任何一条失败,全部回滚

聚合查询#


一致性#

  • 脏读 读到另一个事务未提交的数据(万一对方回滚,你就读了脏数据)。 读到的数据可能根本不存在(对方回滚了)。
  • 不可重复读 同一个事务内,两次读同一条记录,结果不一样(因为中间被其他事务修改并提交了)。 针对同一行数据,内容变了。
  • 幻读 同一个事务内,两次执行同一条查询,返回的行数不一样(因为中间被其他事务插入/删除了符合条件的新行)。 针对行数变了,多出来或少了”幻影”行。

三大区别速记: 脏读:读到未提交的临时数据(最严重)。 不可重复读:读到已提交的更新(同一条记录内容变了)。 幻读:读到已提交的新增/删除(行数变了)。

支持与分享

如果这篇文章对你有帮助,欢迎分享给更多人或赞助支持!

赞助
MYsql面试题
https://firefly.cuteleaf.cn/posts/编程学习/数据库/mysql面试题/
作者
伊月酱
发布于
2026-07-21
许可协议
CC BY-NC-SA 4.0
Profile Image of the Author
Firefly
Hello, I'm Firefly.
公告
欢迎来到我的博客!这是一则示例公告。
音乐
封面

音乐

暂未播放

0:00 0:00
暂无歌词
分类
标签
站点统计
文章
34
分类
11
标签
49
总字数
46,777
运行时长
0 天
最后活动
0 天前

文章目录