前言:
目前咱们对“mysql怎么清除缓存啊”大概比较注重,小伙伴们都需要知道一些“mysql怎么清除缓存啊”的相关内容。那么小编同时在网摘上汇集了一些对于“mysql怎么清除缓存啊””的相关文章,希望姐妹们能喜欢,姐妹们快快来了解一下吧!SQL语句缓存
在MySQL中, 如果你发现你的SQL语句已经优化到极致了, 无法再优化了。但是这个时候, 其查询速度还是比较慢, 就可以考虑使用SQL语句的缓存功能!
① 执行SQL语句读取数据 ② 把本条SQL语句以及查询的结果进行缓存 ③ 第二次访问同一条SQL语句时,系统会自动调用 ② 中缓存的数据!
1) 查看MySQL是否支持SQL语句缓存
mysql> show variables like 'have_query_cache';
+------------------+-------+
| Variable_name | Value |
+------------------+-------+
| have_query_cache | YES |
+------------------+-------+
1 row in set (0.08 sec)
2) 设置缓存空间大小
mysql> set global query_cache_size = 64*1024*1024;
Query OK, 0 rows affected (0.08 sec)
3) 执行SQL语句(缓存数据)
第一次查询
mysql> select * from t_article where id = 8000000;
+---------+----------------------------------+------------+
| id | title | addtime |
+---------+----------------------------------+------------+
| 8000000 | 202025894a8c11e6945c08606e08083c | 2002-11-17 |
+---------+----------------------------------+------------+
1 row in set (1.26 sec)
第二次查询
mysql> select * from t_article where id = 8000000;
+---------+----------------------------------+------------+
| id | title | addtime |
+---------+----------------------------------+------------+
| 8000000 | 202025894a8c11e6945c08606e08083c | 2002-11-17 |
+---------+----------------------------------+------------+
1 row in set (0.00 sec)
4)缓存注意事项
缓存失效: 数据表内容发生变动后
清空缓存:
mysql> reset query cache;
Query OK, 0 rows affected (0.00 sec)
不缓存: select sql_no_cache * from 表名
mysql> select sql_no_cache * from t_article where id = 8000000;
+---------+----------------------------------+------------+
| id | title | addtime |
+---------+----------------------------------+------------+
| 8000000 | 202025894a8c11e6945c08606e08083c | 2002-11-17 |
+---------+----------------------------------+------------+
1 row in set (1.25 sec)
缓存注意:sql语句大小写、多余空格(严格区分大小写与空格)
也就是是第一次查询和第二次查询大小写、空格一致, 否则第二次读取不到缓存
如果是动态条件, 当前时间, 随机数, 是读取不到缓存
第一次查询语句
mysql> SELECT * FROM t_article where id = 800000;
+--------+----------------------------------+------------+
| id | title | addtime |
+--------+----------------------------------+------------+
| 800000 | bd2c4c484a8b11e6945c08606e08083c | 2004-04-04 |
+--------+----------------------------------+------------+
1 row in set (1.26 sec)
第二次查询语句
mysql> select * from t_article where id = 800000;
+--------+----------------------------------+------------+
| id | title | addtime |
+--------+----------------------------------+------------+
| 800000 | bd2c4c484a8b11e6945c08606e08083c | 2004-04-04 |
+--------+----------------------------------+------------+
1 row in set (1.25 sec)
由此可知, 第一次和第二次查询语句要求一致(大小写, 空格), 否则缓存起不到优化作用
标签: #mysql怎么清除缓存啊 #清理mysql缓存