理解MySQL当中的SQL语句

MySQL的sql语句和我们常用的编程语句一样,都是我们输入文本,编译器编译或者解释执行,转化成计算机能识别的语言然后操作计算机资源(磁盘,内存,处理器,计算器等)完成特定功能的操作

平时我们会使用max min IF()等函数为系统自带,而MySQL有可以让我们自定义函数。

MySQL的sql语句执行过程

1,客户端讲sql语句发送给服务端

2,服务端解析sql语句

2.1 查询缓存

查看缓存里面是不是有相同的sql语句执行计划,如果数据高速缓存里面有这个语句,则服务器进程就会直接执行这个SQL 语句,省去后续的工作。省去了语句解析的原因。从内存当中读取数据比磁盘块。注意区分服务端的数据缓存和客户端的缓存是不一样的。

2.2解析语句

2.2.1合法性检查

2.2.2语句含义解析

对sql语句当中涉及的表和库确定

2.3获取对象解析锁

2.4核对权限

2.5确定最佳执行计划

对sql语句进行优化,并把优化的结果放到数据高速缓存里面

2.6语句执行

一是若被选择行所在的数据块已经被读取到数据缓冲区的话,则服务器进程会直接把这个数据传递给客户端,而不是从数据库文件中去查询数据。 二是若数据不在缓冲区中,则服务器进程将从数据库文件中查询相关数据,并把这些数据放入到数据缓冲区中(buffer cache)。

服务端将结果发送给客户端

什么是函数

函数存储着一系列sql语句,调用函数就是一次性执行这些语句。所以函数可以降低语句重复。【但注意的是函数注重返回值,不注重执行过程,所以一些语句无法执行。所以函数并不是单纯的sql语句集合。】