23.8.8 C API Prepared Statements

The MySQL client/server protocol provides for the use of prepared
statements. This capability uses the MYSQL_STMT
statement handler data structure returned by the
mysql_stmt_init() 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 initialization
function.

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.