InnoDB和MyIsam区别
如何定位慢查询?
- 通过一些运维工具如Skywalking,检测出哪个接口比较慢,最终因为是SQL的问题
- 在mysql中开启慢日志查询,比如我们设置的值是2秒,一旦sql执行超过2秒就会记录到日志中。(调试阶段)
如何分析慢查询
可以采用EXPLAIN或者DESC命令获取MySQL如何执行SELECT语句的信息
语法如下
效果如下
字段介绍
索引及底层数据结构
索引(index)是帮助MySQL高效获取数据的数据结构(有序)。在数据之外,数据库系统还维护着满足特定查找算法的数据结构(B+树),这些数据结构以某种方式引用(指向)数据, 这样就可以在这些数据结构上实现高级查找算法这种数据结构就是索引。
B树和B+树
聚簇索引和非聚簇索引
覆盖索引
覆盖索引是指查询使用了索引,并且需要返回的列,在该索引中已经能全部找得到。
索引创建的原则
索引失效的情况
SQL优化
事务的特性
事务是一组操作的集合,它是一个不可分割的工作单位,事务会把所有的操作作为一个整体一起向系统提交或撤销操作请求,即这些操作要么同时成功,要么同时失败。
并发事务带来的问题
事务隔离级别
undo log 和redo log
mvcc(多版本并发控制)
mvcc指的是维护一个数据的多个版本,使得读写操作没有冲突。