2014-02-10 1 views
1

Я пытаюсь выполнить следующий запросMysql группы по запросам принимая 30+ сек для выполнения

select COUNT(*) from tbl_impressions group by spackage 

и потребовались приблизительно 40 секунд, чтобы выполнить его в первом, но после того, как несколько раз тот же запрос выполняется в течение 2 секунд ,

Кто-нибудь знает причину?

PS: Все таблицы уже проиндексированы.

Заранее спасибо.

+1

Великого. Мы не можем читать умы, поэтому, пожалуйста, добавьте свою структуру таблицы и вывод EXPLAIN –

+1

. Запрос компилируется, и оптимизатор находит план выполнения, после чего все кэшируется. – Mihai

+0

http://stackoverflow.com/questions/2710621/count-vs-count1-vs-countpk-which-is-better – Damodaran

ответ

0

Причина, почему это происходит следующее:

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

Пожалуйста, для получения дополнительной документации смотрите здесь http://dev.mysql.com/doc/refman/5.1/en/query-cache.html

+0

Спасибо Christos Paisios – gurunglaxman0

+0

Вы приветствуете ...! – Christos

Смежные вопросы