架构图
做Java开发时,项目一般会分为数据访问层、业务逻辑层、控制层等,每层处理不同的任务。类似的,mysql也不是单一的模块,其内部也分为几层。自己不会画,从网上找来了经典的mysql架构图:
分层简介
1. 连接层
主要处理客户端的连接(例如JDBC)、权限认证等。
2. 服务层
3. 引擎层
mysql的引擎可插拔、适用于不同的场景,用户可以根据需求选择。
4. 存储层
真正的数据库文件硬件保存的区域。
两种常用的引擎对比
mysql的引擎很多,但是目前最常用的是MyISAM和InnoDB
1. 查看所有引擎和当前默认引擎
mysql> show engines;
2. MySAM和InnoDB的差别
MyISAM | InnoDB | |
外键 | 不支持 | 支持 |
锁 | 表锁 | 行锁 |
事务 | 不支持 | 支持 |
缓存 | 只缓存索引 | 缓存索引和真实数据 |
表空间 | 小 | 大 |
关注点 | 性能 | 并发 |
总的来说,MyISAM适合小数据量的项目,InnoDB适合大数据量、高并发的项目。
原文:https://www.cnblogs.com/dubhlinn/p/11285636.html