SQL_NO_CACHE
Просто добавете SQL_NO_CACHE след частта SELECT на израза SELECT и преди списъка с полета. Първата заявка по-долу ще използва кеша на заявките, ако е активиран и заявката е кеширана:
SELECT * FROM table WHERE search= 'keyword'; //lets take 1ms
Втората заявка по-долу няма да използва кеша на заявките:
SELECT SQL_NO_CACHE * FROM table WHERE search= 'keyword'; //lets take ~0.2ms at 2nd time
Това е особено полезно при сравнителен анализ на заявка; ако кешът на заявките е разрешен, въпреки че първата заявка може да отнеме известно време, втората и следващите заявки са почти мигновени. С използването на SQL_NO_CACHE можете да бъдете сигурни, че кешът на заявката не се използва и можете безопасно да сравнявате времената на резултатите. Подсказката SQL_NO_CACHE изключва вградения механизъм за кеширане на заявки на MySQL за конкретна заявка. Можете да помогнете на MySQL да направи кеша на заявките по-ефективен, като използвате този намек за заявки, които са силно динамични (като търсене по ключова дума или отчет, който се изпълнява само всяка нощ). Уверете се, че кеширането на заявките е включено, в противен случай няма нужда от това команда.
какви SQL_CACHE и SQL_NO_CACHE?
Опциите SQL_CACHE и SQL_NO_CACHE влияят на кеширането на резултатите от заявката в кеша на заявката. SQL_CACHE казва на MySQL да съхранява резултата в кеша на заявката, ако е кешируем и стойността на системната променлива query_cache_type е 2 или DEMAND. С SQL_NO_CACHE сървърът не използва кеша на заявките. Той нито проверява кеша на заявката, за да види дали резултатът вече е кеширан, нито кешира резултата от заявката. (Поради ограничение в анализатора символът за интервал трябва да предхожда и следва ключовата дума SQL_NO_CACHE; неинтервал, като нов ред, кара сървъра да провери кеша на заявката, за да види дали резултатът вече е кеширан.)
NO_CACHE според мен може да се използва, ако 'CACHE' е активиран и данните в db се актуализират динамично, т.е. не може да се разчита на кеш на db данни, например:съхраняване на хеш на паролата на потребителя, не можем да разчитаме на CACHE, тъй като има често възможност за промяна на данните
Актуализации на полезни сценарии
1) принудително да не се използва кеш за тестване на скоростта на заявката