【Mysql】知识体系结构构建以及常见考题汇总
- 1、基本SQL知识
- 1.1、D_L语法以及表中常用约束
- 1.2、mysql表列常用数据结构
- 1.3、事务(此处展示并发事务问题以及解决方案、实现原理见2.3)
- read uncommitted有脏读问题
- read committed解决脏读、有不可重复读问题
- repealable read解决不可重读、有幻读问题
- serializable解决幻读
- 2、Mysql结构
- 2.1、执行一条 select 语句,期间发生了什么?
- 2.2、服务层相关
- 2.3、执行引擎(以innodb为例)
- 2.3.1、innodb内存结构
- 2.3.2、innodb事务原理
- 2.3.3、索引
- 创建索引以及设计规范
- 索引分类以及innodb实现数据结构
- sql性能分析(如何查看使用索引好)以及索引使用失效原则
- 3、Mysql部署相关
- 4、常见面试题汇总
Mysql知识整理基于黑马教程
b站黑马教程
小林coding
1、基本SQL知识
1.1、D_L语法以及表中常用约束
【SQL】以mysql为例系统学习DQL理论知识
1.2、mysql表列常用数据结构
1.3、事务(此处展示并发事务问题以及解决方案、实现原理见2.3)
隔离级别解决三种并发事务问题:
1、读未提交read uncommitted(三种问题都不解决)
2、读已提交read committed(oracle默认解决脏读的方案)
3、可重复读repealable read(mysql 默认):解决脏读、不可重复读
4、serializable串行化,全部解决
read uncommitted有脏读问题
read committed解决脏读、有不可重复读问题
解决脏读:
不可重复读
repealable read解决不可重读、有幻读问题
解决不可重复读:
但有幻读问题:
serializable解决幻读
2、Mysql结构
2.1、执行一条 select 语句,期间发生了什么?
连接池-【缓存】-解析器-预处理-优化器-执行器-innodb存储引擎
2.2、服务层相关
锁:
MySQL 有哪些锁
优化器:针对优化器的执行效率,SQL优化:分为
insert优化插入遵循innodb存储引擎结构,顺序插入;
主键遵循innodb存储引擎结构对索引的存储
update并发操作,为了行锁,where 跟有索引的列
select语句中count(*/0)=count(1)>count(主键)>count(字段)
count(?)执行效率
2.3、执行引擎(以innodb为例)
2.3.1、innodb内存结构
innodb物理结构的内存结构buffer pool缓冲区
2.3.2、innodb事务原理
事务隔离机制实现原理
事务原理涉及到的日志redo重做、undo回滚、binlog备份
2.3.3、索引
索引
创建索引以及设计规范
索引分类以及innodb实现数据结构
sql性能分析(如何查看使用索引好)以及索引使用失效原则
3、Mysql部署相关
其中包含:mysql默认包含的数据库,日志排查错误、数据恢复、查询日志、慢查询(sql性能排查)、主从复制(依赖数据恢复日志binlog)、读写分离和分库分表