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

被折叠的 条评论
为什么被折叠?



