MySQL кеш вставляет запросы? - PullRequest
0 голосов
/ 16 марта 2009

Когда я выполняю большой запрос MySQL, который вставляет записи 50 КБ (с 10 небольшими столбцами) в базу данных, мое использование кэша запросов возрастает примерно с 10 до 400 МБ. MySQL кэширует мою вставку?

Ответы [ 3 ]

7 голосов
/ 16 марта 2009

Документация кеша MySQL говорит:

В кеше запросов хранится текст оператора SELECT вместе с соответствующим результатом, который был отправлено клиенту. Если идентичный заявление получено позже, сервер извлекает результаты из кеш запросов, а не разбор и выполнить заявление снова.

Он не кэширует INSERT или другие запросы.

1 голос
/ 16 марта 2009

Как заявил другой пользователь, в MySQL есть механизм, который поддерживает кеш в актуальном состоянии. Когда вы выполняете INSERT, который влияет на ранее сохраненные результаты в кеше, он должен либо обновляться, чтобы отражать новую вставку, либо удаляться, чтобы быть созданным позже, когда этот SELECT будет обработан снова. Я подозреваю, что это то, что вы видите.

Другая возможность, хотя и более очевидная, и, надеюсь, не ваша проблема, состоит в том, что если вы выполняете эту ВСТАВКУ с помощью инструмента, который отображает и автоматически обновляет таблицу, он может выдавать SELECTS после вашей ВСТАВКИ.

0 голосов
/ 16 марта 2009

Вероятно, он обновляет свои кеши, которые находятся в памяти. Если это таблица, которая может быть в кеше, MySQL может пытаться обновляться.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...