一:MySQL 支持哪些存储引擎?
MySQL支持多种存储引擎,比如InnoDB,MyISAM, MySQL大于等于5.5之后,默认存储引擎是InnoDB
二:InnoDB 和 MyISAM 有什么区别?
- InnoDB支持事务,MyISAM不支持
- InnoDB支持外键,MyISAM不支持
- InnoDB 最小的锁粒度是行锁,MyISAM 最小的锁粒度是表锁
- InnoDB 是聚集索引,MylSAM 是非聚集索引
- InnoDB不仅缓存索引还要缓存真实数据,MyISAM只缓存索引,不缓存真实数据
三:说一下MySQL是如何执行一条SQL的?具体步骤有哪些?
SQL语句→查询缓存→解析器→优化器→执行器 。
- 使用连接器,通过客户端/服务器通信协议与 MySQL 建立连接。
- Mysql8.0之前检查是否开启缓存,开启了缓存且命中完全相同的 SQL 语句,则将查询结果直接返回给客户端。
- 由解析器进行语法分析和语义分析,并生成解析树。
- 由优化器生成执行计划,根据索引是否可以优化。
- 执行器来执行SQL语句,具体的执行会操作MySQL的存储引擎来执行 SQL 语句,根据存储引擎类型,得到查询结果。