object prepared_table
-
object
prepared_table
¶ -
prepared_table:
execute
([extra-parameters])¶ Execute a statement that has been prepared with box.prepare().
Parameter
prepared_table
should be the result frombox.prepare()
.Parameter
extra-parameters
should be an optional table to match placeholders or named parameters in the statement.There are two ways to execute: with the method or with the statement id. That is,
prepared_table:execute()
andbox.execute(prepared_table.stmt_id)
do the same thing.Example: here is a test. This function inserts a million rows in a table using a prepared INSERT statement.
function f() local p, start_time box.execute([[DROP TABLE IF EXISTS t;]]) box.execute([[CREATE TABLE t (s1 INTEGER PRIMARY KEY);]]) start_time = os.time() p = box.prepare([[INSERT INTO t VALUES (?);]]) for i=1,1000000 do p:execute({i}) end p:unprepare() end_time = os.time() box.execute([[COMMIT;]]) print(end_time - start_time) -- elapsed time end f()
Take note of the elapsed time. Now change the line with the loop to:
for i=1,1000000 do box.execute([[INSERT INTO t VALUES (?);]], {i}) end
Run the function again, and take note of the elapsed time again. The function which executes the prepared statement will be about 15% faster, though of course this will vary depending on Tarantool version and environment.
-
prepared_table:
unprepare
()¶ Undo the result of an earlier box.prepare() request. This is equivalent to standard-SQL DEALLOCATE PREPARE.
Parameter
prepared_table
should be the result frombox.prepare()
.There are two ways to unprepare: with the method or with the statement id. That is,
prepared_table:unprepare()
andbox.unprepare(prepared_table.stmt_id)
do the same thing.Tarantool strongly recommends using
unprepare
as soon as the immediate objective (executing a prepared statement multiple times) is done, or whenever a prepared statement expires. There is no automatic eviction policy, although automaticunprepare
will happen when the session disconnects (the session’s prepared statements will be removed from the prepared-statement cache).
-