Заставить MySQL запрос SELECT, чтобы не использовать кэш - PullRequest
4 голосов
/ 08 июля 2010

Я выполняю оператор mysql SELECT, который запускается в первый раз 30 секунд, а затем просто занимает .2 после этого.

Я думал, что очистка кеша запросов решит проблему (RESET QUERY CACHE), но это все равно занимает 0,2 секунды после этого. Только перезапуск сервера переводит запрос обратно на 30 секунд, но затем он занимает 0,2 после первого запуска. Добавление SQL_NO_CACHE также не работает.

Запрос:

SELECT id FROM tblOne WHERE szAddress = '123 Main Street' AND szCity = 'LAS VEGAS' AND szStateCode = 'NV'

EXPLAIN:

"id","select_type","table","type","possible_keys","key","key_len","ref","rows","Extra"
1,"SIMPLE","tblOne","ref","szCity_2,idx_state_active","szCity_2","52","const",62620,"Using where"

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

Я планировал добавить адрес или адрес + город + индекс штата.

1 Ответ

3 голосов
/ 08 июля 2010

SQL_NO_CACHE должен быть способ сделать это. Я наткнулся на что-то в конфигурации, которая позволяет вам изменить, если это соблюдается или нет, так что вы можете проверить это.

Также http://www.mysqlperformanceblog.com/2007/09/12/query-profiling-with-mysql-bypassing-caches/

E: MySQL - заставить не использовать кэш для проверки скорости запроса имеет несколько других решений той же проблемы.

...