0.0858 сек.Не радуйся раньше времени
и посмотри сколько займетКод:SELECT SQL_NO_CACHE formalname FROM `d_fias_addrobj` WHERE formalname LIKE 'К%' AND shortname = 'г' ORDER BY formalname LIMIT 0 , 10
В данном случае я не знаток, а эмпирик. И был всегда уверен в обратном, что не дает именно исползовать. Впрочем, внести ясность легкоФанат, есть у меня к тебе вопрос, как к знатоку.
Мне казалось, что SQL_NO_CACHE не дает положить данные в кеш, но не запрещает их оттуда доставать, даже при условии наличия SQL_NO_CACHE в запросе при повторном запуске. Я ошибся?
- как видим, и то и другоеSQL_NO_CACHE
The server does not use the query cache. It neither checks the query cache to see whether the result is already cached, nor does it cache the query result.
статистика изменилась, например из-за какого-то alterвсе равно не понимаю, почему разница. Может, индекс прогрелся?
То есть со временем мы можем поиметь performance degradation.Fragmentation over time – Over time Query Cache might get fragmented, which reduces performance. This can be seen as large value of Qcache_free_blocks relatively to Qcache_free_memory. FLUSH QUERY CACHE command can be used for query cache defragmentation but it may block query cache for rather long time for large query caches, which might be unsuitable for online applications.
То есть можно кешировать только нужные запросы и не писать везде SQL_NO_CACHE/вырубить кеш вообще.Demand operating mode If you just enable qury cache it will operate in “Cache everything” mode. In certain caches you might want to cache only some of the queries – in this case you can set query_cache_type to “DEMAND” and use only SQL_CACHE hint for queries which you want to have cached – such as SELECT SQL_CACHE col from foo where id=5. If you run in default mode you can also use SQL_NO_CACHE to block caching for certain queries, which you know do not need to be cached.
Забавно, как-то даже не думал об этом.Avoid comment (and space) in the start of the query – Query Cache does simple optimization to check if query can be cached. As I mentioned only SELECT queries are cached – so it looks at first letter of the query and if it is “S” it proceeds with query lookup in cache if not – skips it.
Самое забавное, что если где не так напишешь текст запроса, то хрен будет работать сброс кеша =)Due to a limitation in the parser, a space character must precede and follow the SQL_NO_CACHE keyword; a nonspace such as a newline causes the server to check the query cache to see whether the result is already cached.
да там вроде простой эксплейн, который никакой статистикой не испортишьстатистика изменилась, например из-за какого-то alter
оптимизатор хитрый, иногда.да там вроде простой эксплейн, который никакой статистикой не испортишь
Ну, "унутре у ней неонка" - это, конечно, ответ. Но любопытство не очень удовлетворяетоптимизатор хитрый, иногда.
Самому интересноНу, "унутре у ней неонка" - это, конечно, ответ. Но любопытство не очень удовлетворяет
Ну тут-то индекс 1 вообще.конечно "неонка", но весьма забавная