MySQL的预处理技术

所谓的预处理技术,最初也是由MySQL提议的一种减轻服务器压力的一种技术!

历史观mysql处理流程

1,  在客户端准备sql语句

2,  发送sql语句到MySQL服务器

3,  在MySQL服务器执行该sql语句

4,  服务器将执行结果回到给客户端

如此那般每条sql语句请求一次,mysql服务器就要接受并处理几次,当一个剧本文件对相同条语句反复实践数次的时候,mysql服务器压力会变大,所以出现mysql预处理,减轻服务器压力!

预处理的要旨政策:

将sql语句强制一分为二:

第一部分为眼前相同的命令和布局局地

其次局地为前边可变的多少部分

在推行sql语句的时候,首先将前方相同的通令和结构局地发送给MySQL服务器,让MySQL服务器事先进行五次预处理(此时并从未真的的实践sql语句),而为了有限帮衬sql语句的结构完整性,在率先次发送sql语句的时候将中间可变的数码部分都用一个数码占位符来代表!比如问号?就是普遍的数额占位符!

在MySQL预处理中有两种样式:带参数/不带参数预处理

1 不带参数预处理

率先查看一下表中的数据!

MySQL 1

1.1 准备预处理语句

prepare 语句名称 from “预处理的sql语句”;

prepare sql_1 from "select * from pdo";

MySQL 2

1.2 执行预处理语句

execute 语句名称;

execute sql_1;

MySQL 3

MySQL,1.3 删除预处理

drop prepare 语句名称;

drop prepare sql_1;

  MySQL 4

删除之后,就不能够再执行预处理语句了!

 MySQL 5

2 带参数预处理

 2.1准备预处理语句

prepare 语句名称 from “预处理的sql语句”;

prepare sql_2 from "select * from pdo where id = ?";

  MySQL 6

2.2 定义参数变量

set @变量名 = 值;
 
–这里的@是在MySQL中定义变量的一种语法形式(类比php中的$符号)

set @id=2;

MySQL 7

2.3 传递参数变量并执行预处理语句

execute 语句名称 using 参数变量;

execute sql_2 using @id;   --选出id=2的信息

  MySQL 8

2.4 删除预处理

drop prepare 语句名称;

drop prepare sql_2;

  MySQL 9

留意:假诺数据占位符不止一个,就按数量占位符的相继传参就行了:

prepare sql_2 from "select * from pdo where id > ? && age > ?";

  MySQL 10

set @id=2;
set @age=30;

  MySQL 11

execute sql_2 using @id,@age;

  注意此处的参数未知应与步骤一中的占位符对应

MySQL 12

以上是MySQL预处理,一个剧本文件中预处理一条sql语句效果不明了,在反复实践某一条语句时选用预处理效用会抓好!

学完在MySQL中使用预处理,下篇文章介绍在PDO中哪些利用预处理!

网站地图xml地图