mysql分层
- 连接层:提供与客户端连接的服务
- 服务层:1.提供各种用户使用的接口,比如Select 2.提供SQL优化器 优化器的作用就是将用户写的SQL进行优化,缺点是用户优化过的SQL也会进行优化
- 引擎层:提供各种存储数据的方式(InnoDB MyISAM)
- 数据层:数据操作
引擎
查询引擎的命令
#查看所有引擎
show engines;
#查看当前默认引擎
show variables like '%storage_engine%';
MyISAM与InnoDB区别
MyISAM | InnoDB | |
---|---|---|
主外键 | 不支持 | 支持 |
事务 | 不支持 | 支持 |
缓存 | 只缓存索引,不缓存真实数据 | 不仅缓存索引还要缓存真实数据,对内存要求较高,而且内存大小对性能有决定性的映项 |
行表锁 | 表锁,即使操作一条记录也会锁住整个表,不适合高并发的操作字 | 行锁,操作时只锁某一行,不对其它行有影响,适合高并发的操作 |
表空间 | 小 | 大 |
关注点 | 性能 | 事务 |