中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

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

在mysql中查詢緩存的注意事項

發布時間:2021-05-03 18:40:24 來源:億速云 閱讀:234 作者:小新 欄目:編程語言

這篇文章主要介紹在mysql中查詢緩存的注意事項,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

查詢優化注意事項

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查詢緩存規則

  • 開啟了緩存,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緩存也是不起作用的

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

以上是“在mysql中查詢緩存的注意事項”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

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

AI

桂阳县| 河北区| 汤阴县| 民乐县| 铁岭市| 喀什市| 东平县| 绥中县| 江川县| 驻马店市| 兰西县| 甘南县| 晋江市| 灵寿县| 营山县| 准格尔旗| 江永县| 格尔木市| 吉林省| 信丰县| 贺州市| 定边县| 和静县| 玛曲县| 鞍山市| 临猗县| 宁陕县| 湟源县| 上林县| 恩施市| 喀喇沁旗| 滨海县| 淮南市| 东辽县| 闻喜县| 天津市| 东乌| 冷水江市| 绥化市| 佛坪县| 梨树县|