Mysql 深入浅出(一)

Mysql基础框架

工作中经常必然会涉及到数据库的操作。但是自己对数据库的知识没有形成一个很连贯的知识网络,接下来的时间自己会根据阅读的图书做一些笔记总结。

Mysql主要分为两层,server层和存储层。如下图:

Mysql 深入浅出(一)

连接器:负责用户的链接管理,密码验证,鉴权登陆等。

分析器:对SQL语句进行分析。其实SQL就是一个有规则的(包含关键字和空格)字符串。分析器会对字符串中的关键字进行解析。eg:select, update等关键字。并且能够知道这些关键字后面字符串所代表的意思(是一个table,或者是一列,或者是一个值)

查询缓存:查询缓存会保存以前查询过的sql语句,是以K-V的形式存储。如果Sql语句命中,就直接返回结果。 PS:查询缓存在静态数据中比较适用,因为在经常Update和Insert的数据库中,每次update或者insert之后缓存就会失去作用。

优化器:经过了分析器之后,Mysql就会知道你需要干什么了,这是优化器会负责优化SQL语句。例如选择合适的索引,或者在join的时候选择先join 在关联或者是先关联在join。

执行期:真正的去执行语句。在执行语句之前,要先判断一下你对这个表table是否有执行的权限,如果没有就会返回权限错误的提示。(同理,在查询缓存返回结果的时候因为先验证是否有该表的执行权限)。

存储engine:InnoDB,Mysaim 等,每个engine都用自己的特点以及适用的业务场景。后面会具体分析。

 

因此一个SQL语句在Mysql中是怎样被执行的就很清晰了。后面会继续深入分析Mysql。