题目一:mysql多个人同时修改数据库会发生什么
题目二:bean对象注入方式有哪些
题目三:联合索引中的最左匹配原则是什么意思
题目四:mybatis中数据库表如何映射
题目五:对前端有什么了解的技术栈
题目一:mysql多个人同时修改数据库会发生什么
多人同时修改 MySQL 同一行数据会出现两类问题,分场景说:
1. 不加锁并发更新:数据覆盖、超卖
两个事务先查询到同一个库存数值,各自扣减后更新。后提交的事务会直接覆盖前一个的修改,导致库存少扣、商品超卖,出现数据不一致。
2. InnoDB 行锁机制(默认隔离级别 RR)
- 普通更新语句会自动加排他行锁,先执行更新的事务锁住该行;
- 后面的修改请求会阻塞等待,直到前事务提交 / 回滚释放锁,不会出现脏写。
3. 并发带来的读问题(事务隔离层面)
- 脏读:读到其他事务未提交的修改;
- 不可重复读:同一事务两次查询,中间被别的事务修改提交,两次结果不一样;
- 幻读:同一范围查询,中途其他事务插入 / 删除,前后行数不一致。
4. 极端死锁
多个事务互相持有对方需要的行锁,互相等待释放,MySQL 会主动回滚代价小的事务解除死锁。
解决方案
- 悲观锁:select … for update 提前锁住数据;
- 乐观锁:version 版本号 / update stock set stock=stock-1 where stock>0;
- 合理控制事务粒度,缩短锁持有时间,减少并发冲突。
题目二:bean对象注入方式有哪些
三种核心注入:字段注入、setter 注入、构造器注入;区分 @Autowired 按类型、@Resource 按名称,项目主流字段注入,官方推荐构造器注入。
题目三:联合索引中的最左匹配原则是什么意思
一、核心一句话
联合索引优先匹配最左边字段,左边缺了,后面索引失效;遇到范围查询,后面字段索引作废。
二、举例(索引 (a,b,c))
三、开发口诀
等值字段放索引前面,范围查询放索引最后。
题目四:mybatis中数据库表如何映射
一、核心映射对应关系
数据库表 ↔ Java 实体类(Entity) 表字段 ↔ 实体类属性 表主键 ↔ 实体主键属性
二、三种映射方式
三、一句话总结
表对应实体类,字段对应类属性;驼峰自动匹配,名称不一致就用注解或 XML 手动绑定。
题目五:对前端有什么了解的技术栈
精简一句话背诵
基础三件套 HTML/CSS/JS,主流 Vue3 框架,会用 Axios 联调接口,熟悉 UI 组件库与前端工程化工具。






