程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> 解析mysql 緩存若何應用內存

解析mysql 緩存若何應用內存

編輯:MySQL綜合教程

解析mysql 緩存若何應用內存。本站提示廣大學習愛好者:(解析mysql 緩存若何應用內存)文章只能為提供參考,不一定能成為您想要的結果。以下是解析mysql 緩存若何應用內存正文


先解釋2點
開啟緩存也會帶來開支,重要表示在一下方面
讀取在查詢開端之前必需要檢討緩存
假如查詢是緩存的,然則不在成果集中,那末發生成果後保留數據會帶來必定的開支
向緩存寫如數據也會帶來開支

有的情形查詢緩存不會被緩存,即便你應用 SQL_CACHE也不克不及緩存
重要一下幾個
援用了用戶自界說函數
援用了用戶自界說變量
以用了存續進程
查詢中包括一些及時的體系函數,好比now
援用了暫時表

固然下面說到緩存會帶來一些開支
然則緩存對mysql  照樣很主要
帶來的利益比害處多

上面講一下mysql緩存若何應用內存
查詢緩存的內存池被分為年夜小可變的塊,每個快都曉得本身的年夜小,指向前一個和後一個邏輯塊和物理塊 的指針,辦事器啟動時初始化查詢緩存應用的物理內存,內存池開端咋hi要一個快,她的年夜小為被設置裝備擺設為緩存的年夜小減去本身須要的40KB年夜小。在每次緩存查詢成果時,會為查詢成果分派一個緩存塊,然則辦事器沒法估量須要緩存的成果的年夜小,至多會年夜於等於query_cache_min_res_unit,,辦事器在分派時,不會再緩存中一次生成終究成果然後緩存發送到客戶端,而是發生一條緩存一條,如許緩存就可以包管空間不會在分派時糟蹋或許缺乏。分派內存塊的速度較慢,由於辦事器須要檢討可用內存列表而且找打年夜小適合的快,是以辦事器會盡可能削減分派次數,當須要緩存成果時,他會構建一個年夜小至多為最小值的塊,而且把成果放在塊中,假如塊曾經滿了,然則數據沒有完全保留,那末就會發生一個新塊而且保留數據,在數據存完後,假如數據塊還有閒暇,辦事器就會剪輯數據塊,而且把空間並入殘剩的空間中,在個中能夠發生碎片。經由過程壓縮,可以講碎片空間並入有用的數據空間中。

關於事物引擎,好比innodb,事物會影響緩存,由於髒數據也會讓其他援用了這塊數據的緩存掉效。直到該事物提交或回滾以後,這塊數據才會被緩存。
query_cache_min_res_unit:the minimum size (in bytes) for blocks allocated by the query cache. The default value is 4096 (4KB)

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved