
在执行sql语句时,有时会遇到大量结构相同仅部分变量不同的语句,直接执行这些语句消耗的时间是巨大的,而预处理则是为了这种情况准备的语法
一种减轻服务器压力的技术
传统SQL语句处理流程:
--在客户端准备sql语句
select * from student where id =1
--发送sql语句到mysql服务器
--mysql服务器对sql语句进行解析-编译-执行
--将执行结果返回给客户端
传统的弊端:
--即使多次传递的语句大部分内容都是相同的,每次还是要重复传递
--即使多次传递的语句大部分内容都是相同的,每次执行之前还是要先解析、编译之后才能执行
预处理的处理流程:
--在客户端准备预处理的SQL语句
--发送预处理SQL语句进行解析-编译,但不执行
--在客户端准备相关数据
--MySQL服务器对数据和预处理SQL编译,然后执行该SQL语句
--服务器将执行结果返回给客户端
--预处理优点:只对SQL语句进行了一次解析;重复内容大大减少(网络传输更快)
如何使用预处理
-在客户端准备预处理的SQL语句
prepare ppstmt from 'select * from student where id = ?;';
--发送预处理SQL语句进行解析-编译,但不执行
--在客户端准备相关数据
set @id = 1;
--MySQL服务器对数据和预处理SQL编译,然后执行该SQL语句
execute ppstmt using @id
--服务器将执行结果返回给客户端

预处理




