1、mysql指令的普通处理流程
指客户端将要执行的SQL发送给服务器,服务器先进行编译后立刻执行
2、mysql指令预处理流程
预处理prepare:是指客户端将要执行的SQL先发送给服务器,服务器先进行编译,不执行。等到客户端要服务端执行时,发送一条执行指令,让服务器执行已经提前处理好的SQL指令。
当要执行多条相同或相似指令时,预处理机制可以节省很多编译时间
3、预处理的实现
- 声明预处理:prepare 预处理名字 from '要执行的SQL语句';
- 执行预处理:exec 预处理名字;
- 销毁预处理:drop prepare 预处理名字;
prepare select_student from 'select * from students'; execute select_student; drop prepare select_student;
4、预处理占位符
要预处理相似SQL语句的执行,需要用到占位符:?,预处理可以同时甚多个占位符
--声明带占位符的预处理 prepare select_student from 'select * from students where age between ? and ?'; --定义两个变量 set @min = 1; set @max = 18; --使用两个变量代替占位符执行SQL指令 execute select_student using @min,@max;