亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何查詢緩存在mysql中有哪些規則

發布時間:2021-03-04 13:04:56 來源:億速云 閱讀:164 作者:小新 欄目:編程語言

這篇文章將為大家詳細講解有關如何查詢緩存在mysql中有哪些規則,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

在登錄一個網頁后,我們的登錄信息就會被網頁記錄,那么下次打開網站就能直接默認用戶登錄了。我們在mysql查詢緩存中也有這樣的使用,已經被查詢的語句會放在內存,再次查詢就可以直接使用。

1.mysql查詢緩存規則

  • 開啟了緩存,MySQL Server會自動將查詢語句和結果集返回到內存,下次再查直接從內存中取;

  • 緩存的結果是通過sessions共享的,所以一個client查詢的緩存結果,另一個client也可以使用

  • MySQL Query Cache內容為 select 的結果集, cache 使用完整的SQL字符串做 key, 并區分大小寫,空格等。即兩個SQL必須完全一致才會導致cache命中。即檢查查詢緩存時,MySQL Server不會對SQL做任何處理,它精確的使用客戶端傳來的查詢,只要字符大小寫或注釋有點不同,查詢緩存就認為是不同的查詢;

  • prepared statement永遠不會cache到結果,即使參數完全一樣。在 5.1 之后會得到改善。

  • where條件中如包含任何一個不確定的函數將永遠不會被cache, 比如current_date, now等。

  • date 之類的函數如果返回是以小時或天級別的,最好先算出來再傳進去。

select * from foo where date1=current_date -- 不會被 cache
select * from foo where date1='2008-12-30' -- 被cache, 正確的做法
  • 太大的result set不會被cache (< query_cache_limit)

  • MySQL緩存在分庫分表環境下是不起作用的

  • 執行SQL里有觸發器,自定義函數時,MySQL緩存也是不起作用的

2.查詢優化注意事項

(1)對查詢進行優化,應盡量避免全表掃描,首先應考慮在 where 及 order by 涉及的列上建立索引。

(2)應盡量避免在 where 子句中對字段進行 null 值判斷,否則將導致引擎放棄使用索引而進行全表掃描,如:select id from t where num is null可以在num上設置默認值0,確保表中num列沒有null值,然后這樣查詢:select id from t where num=0

(3)應盡量避免在 where 子句中使用!=或<>操作符,否則引擎將放棄使用索引而進行全表掃描。

(4)應盡量避免在 where 子句中使用or 來連接條件,否則將導致引擎放棄使用索引而進行全表掃描,如:select id from t where num=10 or num=20可以這樣查詢:select id from t where num=10 union all select id from t where num=20

(5)in和 not in 也要慎用,否則會導致全表掃描,如:select id from t where num in(1,2,3) 對于連續的數值,能用 between 就不要用 in 了:select id from t where num between 1 and 3

關于“如何查詢緩存在mysql中有哪些規則”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

布拖县| 贞丰县| 凤山市| 鄂托克旗| 彭州市| 淅川县| 台中县| 信丰县| 凤冈县| 蒲江县| 通渭县| 凌云县| 台山市| 伊春市| 香格里拉县| 宕昌县| 深圳市| 碌曲县| 新干县| 东兰县| 凤翔县| 勃利县| 偃师市| 道孚县| 香河县| 磐安县| 泌阳县| 儋州市| 贡觉县| 大新县| 芦溪县| 三明市| 扎赉特旗| 连江县| 阳泉市| 行唐县| 辽宁省| 松原市| 子洲县| 云阳县| 肇源县|