2009-03-16 2 views
0

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

ответ

1

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

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

0

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

7

MySQL query cache documentation говорит:

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

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

+0

upvote для документации link.It помог мне !! Спасибо :) – KillABug