ВАЖНОЕ ОБНОВЛЕНИЕ : я видел исходные коды всех библиотек python для подключения к PostgreSQL через порты FreeBSD и могу сказать, что только py-postgresql действительно подготовлензаявления!Но это только Python 3+.
также py-pg_queue - забавная библиотека, реализующая официальный протокол БД (python 2.4 +)
Вы пропустили ответ на этот вопрос о подготовленных выраженияхиспользовать как можно больше.«Связанные переменные» являются лучшей формой этого, давайте посмотрим:
sql_q = 'insert into abc (intfield, textfield) values (?, ?)' # common form
sql_b = 'insert into abc2 (intfield, textfield) values (:x , :y)' # should have driver and db support
, поэтому ваш тест должен быть таким:
sql = 'insert into abc2 (intfield, textfield) values (:x , :y)'
for i in range (10000):
cur.execute(sql, x=i, y='test')
или это:
def _data(n):
for i in range (n):
yield (i, 'test')
sql = 'insert into abc2 (intfield, textfield) values (? , ?)'
cur.executemany(sql, _data(10000))
и т. д.
ОБНОВЛЕНИЕ: Я только что нашел получатель процентов , как прозрачно заменить SQL-запросы подготовленными и с использованием% (name) s