欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

解析mysql 緩存如何使用內(nèi)存

 更新時間:2013年06月22日 18:03:16   作者:  
本篇文章是對mysql中的緩存如何使用內(nèi)存進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下

先說明2點(diǎn)
開啟緩存也會帶來開銷,主要表現(xiàn)在一下方面
讀取在查詢開始之前必須要檢查緩存
如果查詢是緩存的,但是不在結(jié)果集中,那么產(chǎn)生結(jié)果后保存數(shù)據(jù)會帶來一定的開銷
向緩存寫如數(shù)據(jù)也會帶來開銷

有的情況查詢緩存不會被緩存,即使你使用 SQL_CACHE也不能緩存
主要一下幾個
引用了用戶自定義函數(shù)
引用了用戶自定義變量
以用了存續(xù)過程
查詢中包含一些實(shí)時的系統(tǒng)函數(shù),比如now
引用了臨時表

雖然上面說到緩存會帶來一些開銷
但是緩存對mysql  還是很重要
帶來的好處比壞處多

下面講一下mysql緩存如何使用內(nèi)存
查詢緩存的內(nèi)存池被分為大小可變的塊,每一個快都知道自己的大小,指向前一個和后一個邏輯塊和物理塊 的指針,服務(wù)器啟動時初始化查詢緩存使用的物理內(nèi)存,內(nèi)存池開始咋hi要一個快,她的大小為被配置為緩存的大小減去自身需要的40KB大小。在每次緩存查詢結(jié)果時,會為查詢結(jié)果分配一個緩存塊,但是服務(wù)器無法估計(jì)需要緩存的結(jié)果的大小,至少會大于等于query_cache_min_res_unit,,服務(wù)器在分配時,不會再緩存中一次生成最終結(jié)果然后緩存發(fā)送到客戶端,而是產(chǎn)生一條緩存一條,這樣緩存就能保證空間不會在分配時浪費(fèi)或者不足。分配內(nèi)存塊的速度較慢,因?yàn)榉?wù)器需要檢查可用內(nèi)存列表并且找打大小合適的快,因此服務(wù)器會盡量減少分配次數(shù),當(dāng)需要緩存結(jié)果時,他會構(gòu)建一個大小至少為最小值的塊,并且把結(jié)果放在塊中,如果塊已經(jīng)滿了,但是數(shù)據(jù)沒有完整保存,那么就會產(chǎn)生一個新塊并且保存數(shù)據(jù),在數(shù)據(jù)存完后,如果數(shù)據(jù)塊還有空隙,服務(wù)器就會剪輯數(shù)據(jù)塊,并且把空間并入剩余的空間中,在其中可能產(chǎn)生碎片。通過緊縮,可以講碎片空間并入有效的數(shù)據(jù)空間中。

對于事物引擎,比如innodb,事物會影響緩存,因?yàn)榕K數(shù)據(jù)也會讓其他引用了這塊數(shù)據(jù)的緩存失效。直到該事物提交或回滾之后,這塊數(shù)據(jù)才會被緩存。
query_cache_min_res_unit:the minimum size (in bytes) for blocks allocated by the query cache. The default value is 4096 (4KB)

相關(guān)文章

  • Mysql刪除重復(fù)數(shù)據(jù)通用SQL的兩種方法

    Mysql刪除重復(fù)數(shù)據(jù)通用SQL的兩種方法

    本文主要介紹了Mysql刪除重復(fù)數(shù)據(jù)通用SQL的兩種方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-08-08
  • MySQL不用like+%實(shí)現(xiàn)模糊查詢

    MySQL不用like+%實(shí)現(xiàn)模糊查詢

    本文主要介紹了MySQL不用like+%實(shí)現(xiàn)模糊查詢,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-01-01
  • 對比分析MySQL語句中的IN 和Exists

    對比分析MySQL語句中的IN 和Exists

    mysql中in 是把外表和內(nèi)表作hash 連接,而exists是對外表作loop循環(huán),每次loop循環(huán)再對內(nèi)表進(jìn)行查詢。一直以來認(rèn)為exists比in效率高的說法是不準(zhǔn)確的。
    2018-06-06
  • 在SQL中對同一個字段不同值,進(jìn)行數(shù)據(jù)統(tǒng)計(jì)操作

    在SQL中對同一個字段不同值,進(jìn)行數(shù)據(jù)統(tǒng)計(jì)操作

    這篇文章主要介紹了在SQL中對同一個字段不同值,進(jìn)行數(shù)據(jù)統(tǒng)計(jì)操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-10-10
  • MySQL為數(shù)據(jù)表建立索引的原則詳解

    MySQL為數(shù)據(jù)表建立索引的原則詳解

    這篇文章主要為大家詳細(xì)介紹了MySQL為數(shù)據(jù)表建立索引的原則,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-03-03
  • MLSQL編譯時權(quán)限控制示例詳解

    MLSQL編譯時權(quán)限控制示例詳解

    這篇文章主要給大家介紹了關(guān)于MLSQL編譯時權(quán)限控制的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用mysql具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-03-03
  • MySQL實(shí)現(xiàn)查詢數(shù)據(jù)庫表記錄數(shù)

    MySQL實(shí)現(xiàn)查詢數(shù)據(jù)庫表記錄數(shù)

    這篇文章主要介紹了MySQL實(shí)現(xiàn)查詢數(shù)據(jù)庫表記錄數(shù),文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價值,需要的小伙伴可以參考一下
    2022-09-09
  • mysql查詢表里的重復(fù)數(shù)據(jù)方法

    mysql查詢表里的重復(fù)數(shù)據(jù)方法

    這篇文章主要介紹了mysql查詢表里的重復(fù)數(shù)據(jù)方法,需要的朋友可以參考下
    2017-05-05
  • MySQL中CONCAT和GROUP_CONCAT方法的區(qū)別詳解

    MySQL中CONCAT和GROUP_CONCAT方法的區(qū)別詳解

    本文主要介紹了MySQL中CONCAT和GROUP_CONCAT方法的區(qū)別詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-01-01
  • windows下重啟mysql的方法

    windows下重啟mysql的方法

    這篇文章主要介紹了windows下重啟mysql的方法,需要的朋友可以參考下
    2014-12-12

最新評論