As of MySQL 4.1, the client/server protocol provides for the use
of prepared statements. This capability uses the
MYSQL_STMT statement handler data structure
returned by the
initialization function. Prepared execution is an efficient way to
execute a statement more than once. The statement is first parsed
to prepare it for execution. Then it is executed one or more times
at a later time, using the statement handle returned by the
Prepared execution is faster than direct execution for statements executed more than once, primarily because the query is parsed only once. In the case of direct execution, the query is parsed every time it is executed. Prepared execution also can provide a reduction of network traffic because for each execution of the prepared statement, it is necessary only to send the data for the parameters.
Prepared statements might not provide a performance increase in some situations. For best results, test your application both with prepared and nonprepared statements and choose whichever yields best performance.
Another advantage of prepared statements is that it uses a binary protocol that makes data transfer between client and server more efficient.
For a list of SQL statements that can be used as prepared statements, see Section 12.6, “SQL Syntax for Prepared Statements”.