Psycopg uses an automatic system to manage prepared statements. When a query is prepared, its parsing and planning is stored in the server session, so that further executions of the same query on the same connection (even with different parameters) are optimised.
A query is prepared automatically after it is executed more than
prepare_threshold times on a connection.
psycopg will make
sure that no more than
prepared_max statements are planned: if
further queries are executed, the least recently used ones are deallocated and
the associated resources freed.
Statement preparation can be controlled in several ways:
You can decide to prepare a query immediately by passing
Cursor.execute(). The query is prepared, if it wasn’t already, and executed as prepared from its first use.
execute()will avoid to prepare the query, regardless of the number of times it is executed. The default of the parameter is
None, meaning that the query is prepared if the conditions described above are met.
You can disable the use of prepared statements on a connection by setting its