在代码中对sqla建立预处理stmta0,可以对这个stmt 执行多次bind_param和execute 这个是预处理快的原因吧。
但是有个
0.之后又对sqla再次调用PREPARE建立预处理,这时mysql是对sqla建立新的stmta1,还是就是(mysql自身的优化)使用之前的stmta0?
1.如果是每次对同样的sql都是建立新的stmt,并且这种交替很频繁,那预处理应该比query还慢吧?这种情况我下,如果要达到预处理的效果,那岂不是要在我的代码中来保存这个stmt,在代码层面来保持stmt的静态性。
2.如果是对同样的sql只建立一个stmt(类似静态),那mysql岂不是需要在mysql端来保证形同sql的stmt的静态性,消耗保持在mysql端?
3.以上理解都错了?求赐教。
4.如果我在客户端代码中使用stmt来调用存储过程,这个存储过程中又有另外的stmt(一个或多个)执行,那返回到客户端的是哪个stmt的结果?MySQL预处理疑惑