国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > MySQL > 正文

MySQL全局共享內存介紹

2024-07-24 12:46:35
字體:
來源:轉載
供稿:網友

前言

全局共享內存則主要是 MySQL Instance(mysqld進程)以及底層存儲引擎用來暫存各種全局運算及可共享的暫存信息,如存儲查詢緩存的 Query Cache,緩存連接線程的 Thread Cache,緩存表文件句柄信息的 Table Cache,緩存二進制日志的 BinLog Buffer, 緩存 MyISAM 存儲引擎索引鍵的 Key Buffer以及存儲 InnoDB 數據和索引的 InnoDB Buffer Pool 等等。下面針對 MySQL 主要的共享內存進行一個簡單的分析。

查詢緩存(Query Cache)

查詢緩存是 MySQL 比較獨特的一個緩存區域,用來緩存特定 Query 的結果集(Result Set)信息,且共享給所有客戶端。通過對 Query 語句進行特定的 Hash 計算之后與結果集對應存放在 Query Cache 中,以提高完全相同的 Query 語句的相應速度。當我們打開 MySQL 的 Query Cache 之后,MySQL 接收到每一個 SELECT 類型的 Query 之后都會首先通過固定的 Hash 算法得到該 Query 的 Hash 值,然后到 Query Cache 中查找是否有對應的 Query Cache。如果有,則直接將 Cache 的結果集返回給客戶端。如果沒有,再進行后續操作,得到對應的結果集之后將該結果集緩存到 Query Cache 中,再返回給客戶端。當任何一個表的數據發生任何變化之后,與該表相關的所有 Query Cache 全部會失效,所以 Query Cache 對變更比較頻繁的表并不是非常適用,但對那些變更較少的表是非常合適的,可以極大程度的提高查詢效率,如那些靜態資源表,配置表等等。為了盡可能高效的利 用 Query Cache,MySQL 針對 Query Cache 設計了多個 query_cache_type 值和兩個 Query Hint:SQL_CACHE 和 SQL_NO_CACHE。當 query_cache_type 設置為0(或者 OFF)的時候不使用 Query Cache,當設置為1(或者 ON)的時候,當且僅當 Query 中使用了 SQL_NO_CACHE 的時候 MySQL 會忽略 Query Cache,當 query_cache_type 設置為2(或者DEMAND)的時候,當且僅當Query 中使用了 SQL_CACHE 提示之后,MySQL 才會針對該 Query 使用 Query Cache。可以通過 query_cache_size 來設置可以使用的最大內存空間。

連接線程緩存(Thread Cache)

連接線程是 MySQL 為了提高創建連接線程的效率,將部分空閑的連接線程保持在一個緩存區以備新進連接請求的時候使用,這尤其對那些使用短連接的應用程序來說可以極大的提高創 建連接的效率。當我們通過 thread_cache_size 設置了連接線程緩存池可以緩存的連接線程的大小之后,可以通過(Connections - Threads_created) / Connections * 100% 計算出連接線程緩存的命中率。注意,這里設置的是可以緩存的連接線程的數目,而不是內存空間的大小。

表緩存(Table Cache)

表緩存區主要用來緩存表文件的文件句柄信息,在 MySQL5.1.3之前的版本通過 table_cache 參數設置,但從MySQL5.1.3開始改為 table_open_cache 來設置其大小。當我們的客戶端程序提交 Query 給 MySQL 的時候,MySQL 需要對 Query 所涉及到的每一個表都取得一個表文件句柄信息,如果沒有 Table Cache,那么 MySQL 就不得不頻繁的進行打開關閉文件操作,無疑會對系統性能產生一定的影響,Table Cache 正是為了解決這一問題而產生的。在有了 Table Cache 之后,MySQL 每次需要獲取某個表文件的句柄信息的時候,首先會到 Table Cache 中查找是否存在空閑狀態的表文件句柄。如果有,則取出直接使用,沒有的話就只能進行打開文件操作獲得文件句柄信息。在使用完之后,MySQL 會將該文件句柄信息再放回 Table Cache 池中,以供其他線程使用。注意,這里設置的是可以緩存的表文件句柄信息的數目,而不是內存空間的大小。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 丰城市| 波密县| 阿拉尔市| 庆阳市| 巩义市| 广安市| 松桃| 淮南市| 府谷县| 垫江县| 酉阳| 乐安县| 南部县| 西青区| 和龙市| 密云县| 武定县| 奉化市| 哈尔滨市| 手游| 宣威市| 宿松县| 台中市| 海宁市| 浦东新区| 乌什县| 金秀| 枝江市| 紫金县| 静海县| 尉氏县| 遂川县| 汉源县| 云阳县| 师宗县| 卢龙县| 洛南县| 唐山市| 鄂托克旗| 泾源县| 澄城县|