国产精品chinese,色综合天天综合精品网国产在线,成午夜免费视频在线观看,清纯女学生被强行糟蹋小说

    <td id="ojr13"><tr id="ojr13"><label id="ojr13"></label></tr></td>
        • <source id="ojr13"></source>
            <td id="ojr13"><ins id="ojr13"><label id="ojr13"></label></ins></td>

            Article / 文章中心

            阿里云RDS for MySQL查詢緩存(Query Cache)的設(shè)置和使用

            發(fā)布時間:2019-06-25 點擊數(shù):1904

            功能和適用范圍

            功能:

            ?降低CPU使用率。

            ?降低IOPS使用率(某些情況下)。

            ?減少查詢響應時間,提高系統(tǒng)的吞吐量。

            適用范圍:

            ?表數(shù)據(jù)修改不頻繁、數(shù)據(jù)較靜態(tài)。

            ?查詢(Select)重復度高。

            ?查詢結(jié)果集小于 1 MB。

            說明 查詢緩存并不一定帶來性能上的提升,在某些情況下(比如查詢數(shù)量大,但重復的查詢很少)開啟查詢緩存會帶來性能的下降。

            原理

            RDS for MySQL對來自客戶端的查詢(Select)進行Hash計算得到該查詢的Hash值,通過該Hash值到查詢緩存中匹配該查詢的結(jié)果。

            如果匹配(命中),則將查詢的結(jié)果集直接返回給客戶端,不必再解析、執(zhí)行查詢。

            如果沒有匹配(命中),則將Hash值和結(jié)果集保存在查詢緩存中,以便以后使用。

            查詢涉及的任何一個表中數(shù)據(jù)發(fā)生變化,RDS for MySQL將查詢緩存中所有與該表相關(guān)的查詢結(jié)果集全部釋放(刪除)。

            限制

            ?查詢必須嚴格一致(大小寫、空格、使用的數(shù)據(jù)庫、協(xié)議版本、字符集等必須一致)才可以命中,否則視為不同查詢。

            ?不緩存查詢中的子查詢結(jié)果集,僅緩存查詢最終結(jié)果集。

            ?不緩存存儲函數(shù)(Stored Function)、存儲過程(Stored Procedure)、觸發(fā)器(Trigger)、事件(Event)中的查詢。

            ?不緩存含有每次執(zhí)行結(jié)果變化的函數(shù)的查詢,比如now()、curdate()、last_insert_id()、rand()等。

            ?不緩存對mysql、information_schema、performance_schema系統(tǒng)數(shù)據(jù)庫表的查詢。

            ?不緩存使用臨時表的查詢。

            ?不緩存產(chǎn)生告警(Warnings)的查詢。

            ?不緩存Select … lock in share mode、Select … for update、 Select * from … where autoincrement_col is NULL類型的查詢。

            ?不緩存使用用戶定義變量的查詢。

            ?不緩存使用Hint - SQL_NO_CACHE的查詢。

            設(shè)置

            ?參數(shù)設(shè)置

            控制臺參數(shù)設(shè)置如下。

            ?query_cache_limit(單位:byte):查詢緩存中可存放的單條查詢最大結(jié)果集,默認為 1 MB;超過該大小的結(jié)果集不被緩存。

            ?query_cache_size(單位:byte):查詢緩存的大小,默認為 3 MB。

            ?query_cache_type:是否開啟查詢緩存功能。

            取值為 0 :關(guān)閉查詢功能。

            取值為 1 :開啟查詢緩存功能,但不緩存Select SQL_NO_CACHE開頭的查詢。

            取值為 2 :開啟查詢緩存功能,但僅緩存Select SQL_CACHE開頭的查詢。

            說明

            ?修改query_cache_type需要重啟實例(修改后實例會自動重啟)。

            ?參數(shù)query_cache_size要求設(shè)置值為1024的整數(shù)倍,否則會提示指定參數(shù)無效。

            ?開啟

            參數(shù)query_cache_size大于0并且query_cache_type設(shè)置為1或者2的情況下,查詢緩存開啟。

            ?關(guān)閉

            設(shè)置參數(shù)query_cache_size為0或者設(shè)置query_cache_type為0關(guān)閉查詢緩存。

            ?建議

            ?query_cache_size不建議設(shè)置的過大。過大的空間不但擠占實例其他內(nèi)存結(jié)構(gòu)的空間,而且會增加在緩存中搜索的開銷。建議根據(jù)實例規(guī)格,初始值設(shè)置為10MB到100 MB之間的值,而后根據(jù)運行使用情況調(diào)整。

            ?建議通過調(diào)整query_cache_size的值來開啟、關(guān)閉查詢緩存,因為修改query_cache_type參數(shù)需要重啟實例生效。

            ?查詢緩存適用于特定的場景,建議充分測試后,再考慮開啟,避免引起性能下降或引入其他問題。

            驗證效果

            ?控制臺

            ?SQL命令

            可以通過如下命令來獲取查詢緩存的使用狀態(tài)。

            show global status like ‘Qca%’;

            ?Qcache_hits:查詢緩存命中次數(shù)。

            ?Qcache_inserts:將查詢和結(jié)果集寫入到查詢緩存中的次數(shù)。

            ?Qcache_not_cached:不可以緩存的查詢次數(shù)。

            ?Qcache_queries_in_cache:查詢緩存中緩存的查詢量。

            阿里云RDS數(shù)據(jù)庫   阿里云服務器