日记大全

日记大全 > 句子大全

MySQL系列之一条SQL语句走过的套路(一)

句子大全 2016-11-13 08:38:48
相关推荐

大家日常工作中经常会使用查询命令来获取数据,但很少有人会关注这条常见的语句在MySQL中是如何执行的。下图中表明了MySQL的基本架构,同时你也可以了解到SQL语句所走过的套路。

从图中我们可以看到虚线划定了两个模块,这分别代表了MySQL的Server层和存储引擎层两部分。

其中Server层包含了连接器、分析器、优化器、执行器。(如果开启了查询缓存的Server层应该还包含一层查询缓存,但通常情况下我们都是关闭查询缓存的)MySQL的大多数的核心服务功能,以及所有的内置函数,比如日期、时间、数学等。所有跨存储引擎的功能都在这一层实现,比如存储过程、视图等。

存储引擎层则负责数据的存储和提取。众所周知,它目前支持InnoDB、MyISAM、Memory等多个插件式存储引擎。目前应用最广的是InnoDB。并且目前大家常用的MySQL版本中InnoDB已经成为了默认的存储引擎。

当我们执行create table建表的时候,如果不指定引擎类型,默认就是InnoDB。如果想要使用其他的存储引擎就需要在建表语句中使用engine=memory来指定。但这不代表其他的存储引擎不可取,合适的业务选择合适的存储引擎很重要。这个在后续的文章中会和大家讨论如何选择适合业务的引擎。

也就是说,我们所创建的数据库中,不同表是可以具备不同的存储引擎支持的。只要你的MySQL中集成了对应的存储引擎。我们通过show engines 也可以查看到目前MySQL中集成的存储引擎。这些不同的存储引擎,都集中在图中的存储引擎层并且共用同一个Server层,也就是从连接器到执行器的部分。大家可以先对这个图有个大体印象,我会在下一篇的文章中依次为大家介绍每个组建的作用。

阅读剩余内容
网友评论
相关内容
拓展阅读
最近更新