所谓的预处置惩罚手艺,最初也是由MySQL提出的一种减轻服务器压力的一种手艺!
传统mysql处置惩罚流程
1, 在客户端预备sql语句
2, 发送sql语句到MySQL服务器
3, 在MySQL服务器实行该sql语句
4, 服务器将实行结果返回给客户端
如许每条sql语句要求一次,mysql服务器就要吸收并处置惩罚一次,当一个剧本文件对统一条语句重复实行屡次的时刻,mysql服务器压力会变大,所以涌现mysql预处置惩罚,减轻服务器压力!
预处置惩罚的基础战略:
将sql语句强迫一分为二:
第一部份为前面雷同的敕令和构造部份
第二部份为背面可变的数据部份
在实行sql语句的时刻,起首将前面雷同的敕令和构造部份发送给MySQL服务器,让MySQL服务器事前举行一次预处置惩罚(此时并没有真正的实行sql语句),而为了保证sql语句的构造完整性,在第一次发送sql语句的时刻将个中可变的数据部份都用一个数据占位符来示意!比方问号?就是罕见的数据占位符!
在MySQL预处置惩罚中有两种情势:带参数/不带参数预处置惩罚
一、不带参数预处置惩罚
起首检察一下表中的数据!
1、 预备预处置惩罚语句
prepare 语句称号 from “预处置惩罚的sql语句”;
prepare sql_1 from "select * from pdo";
2 、实行预处置惩罚语句
execute 语句称号;
execute sql_1;
3、 删除预处置惩罚
drop prepare 语句称号;
drop prepare sql_1;
删除以后,就不能再实行预处置惩罚语句了!
二、 带参数预处置惩罚
1、预备预处置惩罚语句
prepare 语句称号 from “预处置惩罚的sql语句”;
prepare sql_2 from "select * from pdo where id = ?";
2、 定义参数变量
set @变量名 = 值; --这里的@是在MySQL中定义变量的一种语法情势(类比php中的$标记)
set @id=2;
3 、通报参数变量并实行预处置惩罚语句
execute 语句称号 using 参数变量;
execute sql_2 using @id; --选出id=2的信息
4 、删除预处置惩罚
drop prepare 语句称号;
drop prepare sql_2;
注重:假如数据占位符不止一个,就按数据占位符的递次传参就好了:
prepare sql_2 from "select * from pdo where id > ? && age > ?";
set @id=2; set @age=30;
execute sql_2 using @id,@age;
注重此处的参数未知应与步骤一中的占位符对应
以上是MySQL预处置惩罚,一个剧本文件中预处置惩罚一条sql语句结果不明显,在重复实行某一条语句时运用预处置惩罚效力会进步!
以上就是MySQL什么是预处置惩罚手艺?预处置惩罚手艺的运用的细致内容,更多请关注ki4网别的相干文章!