повторенные запросы mysql изменяют время выполнения

Я заметил что, когда я выполняю запрос больше чем в один раз последовательно на моей mysql машине, отбрасываниях времени выполнения и изменяюсь значительно (40/50%) после первого выполнения и этого БЕЗ активированного кэша запроса и никакое другое вмешательство процессов.

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

Так как иногда я должен точно настроить некоторые запросы, я не знаю, как иметь дело с этой проблемой. Что я обычно делаю, должен несколько раз выполнять запрос и избавляться от пиков

Я хотел бы знать, существует ли лучшее решение...

-1
задан 13 October 2014 в 14:08
2 ответа

Операционная система использует неиспользуемую память в качестве кеша. Почему это проблема?

Изменить

Чтобы узнать время, затраченное на различные части операции запроса, вы можете настроить профилирование с помощью

set profiling=1;

и показать профиль с помощью показать профили и показать профиль для запроса после выполнения запроса.

1
ответ дан 5 December 2019 в 19:27

Будьте осторожны с целями оптимизации, как уже упоминалось: когда вы оптимизируете свои запросы для повторных запусков, вы получите оптимальные результаты для запросов, которые выполняются несколько раз за короткий промежуток времени (но для этого вы можете использовать кеш запросов).

Повторяя запросы, вы «нагреваетесь» up "Дисковые кеши ОС, поэтому поиски на диске больше не учитываются в вашем времени. Это может значительно ухудшить ваши результаты в реальных сценариях, когда требуется несколько операций поиска на занятых дисках.

примечание: вы также можете попробовать «объяснить выбор ...», который расскажет вам об используемых и пригодных для использования индексах. В большинстве случаев это поможет вам определить, какие дополнительные индексы создавать или как переписать запросы.

1
ответ дан 5 December 2019 в 19:27

Теги

Похожие вопросы