使用Prepared Statement时,你要先输入那种带问号的语句,让数据库服务端生成一个Prepared Statement句柄传给你;你再拿着这个句柄,输入参数让数据库去执行n次sql。
也就是说,这里客户端与服务端的交互(round trip)发生了1 + n次。1 = 生成prep stmt, n = 执行sql.
典型的OLTP应用在大部分情况下,都不会循环执行sql,也就是说 n=1.也就是说,如果不使用prep stmt, 一次数据库交互需要1个round trip; 如果用了,那就是 n +1 = 1 + 1 =2. 使用prep stmt时发生的round trip数增加了1倍!
这对性能还是有一定影响的。不过,出于安全原因,没人不敢不用prep stmt. 所以,讨论性能问题似乎也没有多大意义。