query_cache

mysql的query_cache 相當於 oracle 裏的result cache


mysql> mhow variables like '%query_cache%';
+------------------------------+---------+
| Variable_name                | Value   |
+------------------------------+---------+
| have_query_cache             | YES     |
| query_cache_limit            | 1048576 |
| query_cache_min_res_unit     | 4096    |
| query_cache_size             | 1048576 |
| query_cache_type             | DEMAND  |
| query_cache_wlock_invalidate | OFF     |
+------------------------------+---------+
6 rows in set (0.01 sec)


設置爲DEMAND後,可以加hint手動開啓

不加hint,可以看到多次查詢速度相差不多

mysql> select count(*) from t100 a,t100 b,t100 c,emp e,t10;
+----------+
| count(*) |
+----------+
| 28753060 |
+----------+
1 row in set (1.98 sec)

mysql> select count(*) from t100 a,t100 b,t100 c,emp e,t10;
+----------+
| count(*) |
+----------+
| 28753060 |
+----------+
1 row in set (1.98 sec)


而增加hint後,第二次查詢幾乎不需要時間

mysql> select sql_cache count(*) from t100 a,t100 b,t100 c,emp e,t10;
+----------+
| count(*) |
+----------+
| 28753060 |
+----------+
1 row in set (2.02 sec)

mysql> select sql_cache count(*) from t100 a,t100 b,t100 c,emp e,t10;
+----------+
| count(*) |
+----------+
| 28753060 |
+----------+
1 row in set (0.00 sec)


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章