日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mysql no cache_mysql的SQL_NO_CACHE(在查询时不使用缓存)和sql_cache用法

發(fā)布時間:2023/12/20 数据库 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql no cache_mysql的SQL_NO_CACHE(在查询时不使用缓存)和sql_cache用法 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

轉(zhuǎn)自:http://www.169it.com/article/5994930453423417575.html

為了測試sql語句的效率,有時候要不用緩存來查詢。

使用

SELECT SQL_NO_CACHE ...

語法即可

SQL_NO_CACHE的真正作用是禁止緩存查詢結(jié)果,但并不意味著cache不作為結(jié)果返回給query。

目前流傳的SQL_NO_CACHE不外乎兩種解釋:

1.對當(dāng)前query不使用數(shù)據(jù)庫已有緩存來查詢,則當(dāng)前query花費時間會多點

2.對當(dāng)前query的產(chǎn)生的結(jié)果集不緩存至系統(tǒng)query cache里,則下次相同query花費時間會多點

我做了下實驗,似乎兩種都對。

sql_cache意思是說,查詢的時候使用緩存。

對SQL_NO_CACHE的解釋及測試如下:

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.

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)

================MyBatis的對CACHE的應(yīng)用======================

MyBatis的flushCache和useCache的使用

(1)當(dāng)為select語句時:

flushCache默認(rèn)為false,表示任何時候語句被調(diào)用,都不會去清空本地緩存和二級緩存。

useCache默認(rèn)為true,表示會將本條語句的結(jié)果進行二級緩存。

(2)當(dāng)為insert、update、delete語句時:

flushCache默認(rèn)為true,表示任何時候語句被調(diào)用,都會導(dǎo)致本地緩存和二級緩存被清空。

useCache屬性在該情況下沒有。

當(dāng)為select語句的時候,如果沒有去配置flushCache、useCache,那么默認(rèn)是啟用緩存的,所以,如果有必要,那么就需要人工修改配置,修改結(jié)果類似下面:

……

update 的時候如果 flushCache="false",則當(dāng)你更新后,查詢的數(shù)據(jù)數(shù)據(jù)還是老的數(shù)據(jù)。

總結(jié)

以上是生活随笔為你收集整理的mysql no cache_mysql的SQL_NO_CACHE(在查询时不使用缓存)和sql_cache用法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。