On Wed, 4 Mar 2009, Morten wrote:
> Hi, I was hoping that using SQL_NO_CACHE would help me bypass the query
> cache, but judging from the below it doesn't. What can I do to avoid the
> query cache?
>
> Thanks.
>
> Morten
>
>
> mysql> select count(*) from users where email = 'hello';
> +----------+
> | count(*) |
> +----------+
> | 0 |
> +----------+
> 1 row in set (7.22 sec)
>
> mysql> select count(*) from users where email = 'hello';
> +----------+
> | count(*) |
> +----------+
> | 0 |
> +----------+
> 1 row in set (0.45 sec)
>
> mysql> select count(*) from users where email = 'hello';
> +----------+
> | count(*) |
> +----------+
> | 0 |
> +----------+
> 1 row in set (0.45 sec)
>
> mysql> select SQL_NO_CACHE count(*) from users where email = 'hello';
> +----------+
> | count(*) |
> +----------+
> | 0 |
> +----------+
> 1 row in set (0.43 sec)
Hi
SQL_NO_CACHE means that the query result is not cached. It does not mean
that the cache is not used to answer the query.
You may use RESET QUERY CACHE to remove all queries from the cache and
then your next query should be slow again. Same effect if you change
the table, because this makes all cached queries invalid. But why do you
want to do this?
Regards,
Thomas Spahni