- 8月
- 1.列举三种你所了解的索引失效场景
- 2.为什么建议innoDB表必须建索引,并且推荐使用整型的自增主键
- 3.请对spring的aop通知类型进行简要说明
- 4.spring aop底层是如何实现的
- 5.一条select 语句在mysql中会经历怎样的流程
- 6.spring的事务传播特性
- 7.sql优化
- 8.order by索引失效场景
- 9.mysql主从集群
8月
1.列举三种你所了解的索引失效场景
like 左模糊查询
联合索引没有遵循最左匹配原则
is not null
select *
索引列参与计算
索引列参与函数计算
not in /not exist
or
类型隐形转换
2.为什么建议innoDB表必须建索引,并且推荐使用整型的自增主键
3.请对spring的aop通知类型进行简要说明
类型 | 描述 | 解释 |
---|
Before advice | 前置通知 | 在连接点前面执行,前置通知不会影响连接点的执行,除非此处抛出异常 |
After returning advice | 后置通知 | 在连接点正常执行完成后执行,如果连接点抛出异常,则不会执行 |
After throwing advice | 异常通知 | 在连接点抛出异常后执行 |
After (finally) advice | 最终通知 | 在连接点执行完成后执行,不管是正常执行完成,还是抛出异常,都会执行返回通知中的内容 |
Around advice | 环绕通知 | 环绕通知围绕在连接点前后,能在方法调用前后自定义一些操作,还需要负责决定是继续处理 join point (调用 ProceedingJoinPoint 的 proceed 方法)还是中断执行 |
4.spring aop底层是如何实现的
5.一条select 语句在mysql中会经历怎样的流程
6.spring的事务传播特性
名称 | 解释 |
---|
PROPAGATION_REQUIRED | 支持当前事务,如果当前没有事务,就新建一个事务。这是最常见的选择,也是 Spring 默认的事务的传播 |
PROPAGATION_REQUIRES_NEW | 新建事务,如果当前存在事务,则事务挂起,新增一个事务,新建的事务和当前的事务没有任何关系,是两个独立的事务,外层的事务失败回归后,不能回滚内层事务的运行结果,内层事务失败抛出异常,外层事务有捕获,也能不回滚事务操作 |
PROPAGATION_SUPPORTS | 支持当前事务,如果当前没有事务,就以非事务方式执行 |
PROPAGATION_NOT_SUPPORTED | 不执行当前事务;而是总是执行非事务(不认父亲) |
PROPAGATION_MANDATORY | 支持当前事务,如果当前没有事务,则抛出异常。 强制事务,不存在父事务,抛异常 |
PROPAGATION_NEVER | 以非事务方式执行,如果当前存在事务,则抛出异常。 强制非事务,存在父事务,抛异常 |
PROPAGATION_NESTED | 如果当前存在事务,则在嵌套事务内执行。如果当前没有事务,则进行与PROPAGATION_REQUIRED类似的操作 子事务受父事务的影响,父事务不是子事务的影响(前提 父事务捕获了子事务的异常) |
7.sql优化
8.order by索引失效场景
9.mysql主从集群