MySql基本架构分为Server层和存储引擎
Server层
连接器
负责连接客户端与Server层,简单来说就像是一个登录认证模块,判断用户的身份和权限。
查询缓存
MySql会缓存我们执行过的select语句,以Key-Value的形式直接放在内存中。后续查询如果命中缓存就可以直接拿出缓存的结果集而不用去执行后面的复杂操作。但是查询缓存会经常失效,比如你更新一张表的其中一条内容,那这张表的所有查询缓存都会失效。所以在MySql8.0中查询缓存被移除了。
分析器
功能和它的名字一样就是分析sql语句,其中包括词法分析和语法分析。
优化器
一条Sql语句的执行过程可能有多个不同的方案,优化器的作用就是在这几个方案中找到一个执行效率最高的方案。
执行器
执行器就是按照优化器给的方案来干活了。
存储引擎
InnoDB
支持外键,支持事务,使用行锁,操作时只锁某一行,不对其他行有影响,适合高并发的操作。
表空间较大,关注事务,不仅缓存索引还要缓存真实数据,对内存要求较高而且内存大小对性能有决定性影响。
MyISAM
不支持外键,不支持事务,表锁,操作一条记录也会锁住整个表,不适合高并发操作。
表空间较小,关注性能,只缓存索引不缓存真实数据。