通过上图可以看出mysql分为四层,分别为连接层、服务层、存储引擎层、存储层。
连接层:连接池组件
服务层:从左向右分别为:管理服务和工具组件、SQL接口组件、查询分析器组件、优化器组件、缓冲组件
存储引擎层:插件式存储引擎
存储层:硬盘、物理文件 图中的NTFS/ext2/3/4等为其硬盘格式
mysql数据库区别于其他数据库的一个最重要的特点就是插件式的表存储引擎。需要特别注意的是存储引擎是基于表的,而不是数据库。
mysql优化器会对sql做优化处理去匹配索引,达到最优的目的。又由于存储引擎的插件式特性,会有一些很牛的公司对存储引擎和优化器做重写的工作,使其达到更优的目的,比如:Alisql。