MySQL体系结构
数据库的数据是存储在物理文件中的,但是用户并不能直接与文件打交道。我们要通过工具连接到MySQL服务。
从上图可以看出,MySQL服务一共分4层。其中又有很多子模块分别是连接池,服务管理与组件,SQL接口,查询分析器,优化器,缓存组件,插件式存储引擎,物理文件日志系统。
每个模块都有自己的职责,其中存储引擎是以插件的形式存在是非常多样化的。
存储引擎
存储引擎非常之多,包括官方的和非官方的。下面是官方推荐的一些引擎的比较
特性 | InnoDB | MyISAM | NDB | Memory | Archive |
---|---|---|---|---|---|
存储限制 | 64TB | N | Y | Y | N |
事务 | Y | N | N | N | N |
锁粒度 | 行 | 表 | 行 | 表 | 行 |
MVCC/快照读 | Y | N | Y | N | Y |
地理信息 | N | Y | N | N | N |
B-树索引 | Y | Y | Y | Y | N |
Hash索引 | Y | N | Y | Y | N |
全文索引 | N | Y | N | N | N |
聚集索引 | Y | N | N | N | N |
外键 | Y | N | N | N | N |
欢迎关注公众号彬彬魔坊,还有更关于数据结构与算法,计算机相关知识。