Mysql预处理

预处理

在执行 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;

执行语句
服务器将执行结果返回给客户端

 

 

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值