Подготовленные операторы mysql хранят (кешируют) результат выбора?

Во-первых, этот вопрос относится к c api подготовленных операторов и версии mysql 5.1.48.

У меня есть одна программа (A), которая выполняет «выбор», а другая (B) выполняет «вставку/обновление». Я бы хотел, чтобы программа (A), которая «выбирает», распознавала новые строки после «вставки» программы (B). ".

  1. Предположим, что программа (A) генерирует набор результатов «выбрать», используя подготовленный оператор.
  2. Теперь программа (B) «вставляет» новые строки.
  3. Когда программа (A) «выбирает», используя тот же подготовленный оператор, она не возвращает вновь вставленные строки.

Я пытался вызвать mysql_stmt_reset() в дескрипторе оператора, но безрезультатно.

Как мне заставить программу (А) распознавать, что рассматриваемая таблица изменена, и получать новые данные?
(Если программа (А) на самом деле кэширует результаты, я хотел бы сохранить это поведение, пока таблица БД остается одинаковый.)

Когда строка обновляется и выбирается снова, извлекается обновленная информация. Но новая вставленная строка не будет выбрана! ба.

Спасибо


person eugene    schedule 23.11.2010    source источник
comment
попробуйте удалить query_cache в вашем my.cnf, но это значительно снизит производительность запроса.   -  person vinothkr    schedule 23.11.2010
comment
я хотел бы использовать поведение кэширования, если это возможно. не должен ли быть способ сохранить кеш, если данные в таблице БД не изменятся?   -  person eugene    schedule 23.11.2010


Ответы (1)


Для записи,

это была автокоммит, которая вызвала проблему.

person eugene    schedule 23.11.2010