最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

MySQL查詢(xún)緩存優(yōu)化示例詳析

 更新時(shí)間:2022年10月26日 11:48:13   作者:Happy_Future  
MySQL的優(yōu)化指的是一個(gè)很大的系統(tǒng),面試的時(shí)候我之前是從sql的語(yǔ)句優(yōu)化方面去說(shuō)的,這種優(yōu)化也有作用,不過(guò)是從邏輯方面去優(yōu)化,下面這篇文章主要給大家介紹了關(guān)于MySQL查詢(xún)緩存優(yōu)化的相關(guān)資料,需要的朋友可以參考下

一、概述

在日常使用數(shù)據(jù)庫(kù)中,80%的數(shù)據(jù)請(qǐng)求都是查詢(xún),而余下的20%是更新或者增加數(shù)據(jù)。如何提升查詢(xún)性能,便是提高數(shù)據(jù)庫(kù)處理能力的關(guān)鍵。

二、查詢(xún)優(yōu)化內(nèi)容

1、查詢(xún)緩存的原理

查詢(xún)的路線圖:

緩存SELECT操作或預(yù)處理查詢(xún)的結(jié)果集和SQL語(yǔ)句,當(dāng)有新的SELECT語(yǔ)句或預(yù)處理查詢(xún)語(yǔ)句請(qǐng)求,先去查詢(xún)緩存,判斷是否存在可用的記錄集,判斷標(biāo)準(zhǔn):與緩存的SQL語(yǔ)句,是否完全一樣,區(qū)分大小寫(xiě)。

2、查詢(xún)緩存的優(yōu)缺點(diǎn)

優(yōu)點(diǎn)

不需要對(duì)SQL語(yǔ)句做任何解析和執(zhí)行,當(dāng)然語(yǔ)法解析必須通過(guò)在先,直接從Query Cache中獲得查詢(xún)結(jié)果,提高查詢(xún)性能

缺點(diǎn)

查詢(xún)緩存的判斷規(guī)則,不夠智能,也即提高了查詢(xún)緩存的使用門(mén)檻,降低效率查詢(xún)緩存的使用,會(huì)增加檢查和清理Query Cache中記錄集的開(kāi)銷(xiāo)

3、不能應(yīng)用查詢(xún)緩存的內(nèi)容

  • 查詢(xún)語(yǔ)句中加了SQL_NO_CACHE參數(shù)
  • 查詢(xún)語(yǔ)句中含有獲得值的函數(shù),包含:自定義函數(shù),如:NOW() ,CURDATE()、GET_LOCK()、RAND()、CONVERT_TZ()等
  • 對(duì)系統(tǒng)數(shù)據(jù)庫(kù)的查詢(xún):mysql、information_schema 查詢(xún)語(yǔ)句中使用SESSION級(jí)別變量或存儲(chǔ)過(guò)程中的局部變量
  • 查詢(xún)語(yǔ)句中使用了LOCK IN SHARE MODE、FOR UPDATE的語(yǔ)句,查詢(xún)語(yǔ)句中類(lèi)似SELECT …INTO 導(dǎo)出數(shù)據(jù)的語(yǔ)句
  • 對(duì)臨時(shí)表的查詢(xún)操作
  • 存在警告信息的查詢(xún)語(yǔ)句
  • 不涉及任何表或視圖的查詢(xún)語(yǔ)句
  • 某用戶(hù)只有列級(jí)別權(quán)限的查詢(xún)語(yǔ)句
  • 事務(wù)隔離級(jí)別為Serializable時(shí),所有查詢(xún)語(yǔ)句都不能緩存

4、查詢(xún)緩存相關(guān)的服務(wù)器變量

  • query_cache_min_res_unit:查詢(xún)緩存中內(nèi)存塊的最小分配單位,默認(rèn)4k,較小值會(huì)減少浪費(fèi),但會(huì)導(dǎo)致更頻繁的內(nèi)存分配操作,較大值會(huì)帶來(lái)浪費(fèi),會(huì)導(dǎo)致碎片過(guò)多,內(nèi)存不足
  • query_cache_limit:?jiǎn)蝹€(gè)查詢(xún)結(jié)果能緩存的最大值,單位字節(jié),默認(rèn)為1M,對(duì)于查詢(xún)結(jié)果過(guò)大而無(wú)法緩存的語(yǔ)句,建議使用SQL_NO_CACHE
  • query_cache_size:查詢(xún)緩存總共可用的內(nèi)存空間;單位字節(jié),必須是1024的整數(shù)倍,最小值40KB,低于此值有警報(bào)
  • query_cache_wlock_invalidate:如果某表被其它的會(huì)話鎖定,是否仍然可以從查詢(xún)緩存中返回結(jié)果,默認(rèn)值為OFF,表示可以在表被其它會(huì)話鎖定的場(chǎng)景中繼續(xù)從緩存返回?cái)?shù)據(jù);ON則表示不允許
  • query_cache_type:是否開(kāi)啟緩存功能,取值為ON, OFF, DEMAND

5、SELECT語(yǔ)句的緩存控制

  • SQL_CACHE:顯式指定存儲(chǔ)查詢(xún)結(jié)果于緩存之中
  • SQL_NO_CACHE:顯式查詢(xún)結(jié)果不予緩存
  • query_cache_type參數(shù)變量
  • query_cache_type的值為OFF或0時(shí),查詢(xún)緩存功能關(guān)閉
  • query_cache_type的值為ON或1時(shí),查詢(xún)緩存功能打開(kāi),SELECT的結(jié)果符合緩存條件即會(huì)緩存,否則,不予緩存,顯式指定SQL_NO_CACHE,不予緩存,此為默認(rèn)值
  • query_cache_type的值為DEMAND或2時(shí),查詢(xún)緩存功能按需進(jìn)行,顯式指定SQL_CACHE的SELECT語(yǔ)句才會(huì)緩存;其它均不予緩存

6、查詢(xún)緩存相關(guān)的狀態(tài)變量

show gloable status like 'Qcache%' ;

7、查詢(xún)的優(yōu)化的檢查路線

8、命中率和內(nèi)存使用率估算

查詢(xún)緩存中內(nèi)存塊的最小分配單位query_cache_min_res_unit :

(query_cache_size - Qcache_free_memory) / Qcache_queries_in_cache

查詢(xún)緩存命中率 :

Qcache_hits / ( Qcache_hits + Qcache_inserts ) * 100%

查詢(xún)緩存內(nèi)存使用率:

(query_cache_size – qcache_free_memory) / query_cache_size * 100%

9、版本差異

在早期版本mysql均支持緩存,但是隨著redis等內(nèi)存型高性能的緩存技術(shù)興起,mysql已經(jīng)拋棄自己的緩存功能,mysql8.0以后不再支持緩存功能。

三、總結(jié)

MYSQL的緩存優(yōu)化在早期版本可以起到一定的優(yōu)化作用,最新的版本不再支持,緩存的功能而由其他的緩存服務(wù)來(lái)承擔(dān)。

到此這篇關(guān)于MySQL查詢(xún)緩存優(yōu)化的文章就介紹到這了,更多相關(guān)MySQL查詢(xún)緩存優(yōu)化內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Windows中Mysql啟動(dòng)失敗的完美解決方案

    Windows中Mysql啟動(dòng)失敗的完美解決方案

    這篇文章主要介紹了Windows中Mysql啟動(dòng)失敗解決方案,mysql服務(wù)啟動(dòng)失敗分為2種情況給大家詳細(xì)介紹,針對(duì)每一種給大家詳細(xì)解決,需要的朋友可以參考下
    2022-10-10
  • 如何修改WAMP中mysql默認(rèn)空密碼的方法

    如何修改WAMP中mysql默認(rèn)空密碼的方法

    WAMP安裝好后,mysql密碼是為空的,那么要如何修改呢?其實(shí)很簡(jiǎn)單,通過(guò)幾條指令就行了,下面我就一步步來(lái)操作。
    2011-07-07
  • MySQL系列之一 MariaDB-server安裝

    MySQL系列之一 MariaDB-server安裝

    本文主要介紹了MariaDB-server安裝的幾種方式,文中通過(guò)代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-07-07
  • 關(guān)于Mysql中json數(shù)據(jù)類(lèi)型的查詢(xún)操作指南

    關(guān)于Mysql中json數(shù)據(jù)類(lèi)型的查詢(xún)操作指南

    mysql在5.7版本之后就開(kāi)始支持json數(shù)據(jù)類(lèi)型,并且mysql8.0版本對(duì)json的處理已經(jīng)做的非常完善了,json數(shù)據(jù)類(lèi)型的優(yōu)點(diǎn)缺點(diǎn)可自己查詢(xún),本文主要介紹一些關(guān)于json數(shù)據(jù)類(lèi)型的查詢(xún)操作
    2023-07-07
  • Windows系統(tǒng)中配置開(kāi)啟MySQL數(shù)據(jù)庫(kù)日志的完整步驟

    Windows系統(tǒng)中配置開(kāi)啟MySQL數(shù)據(jù)庫(kù)日志的完整步驟

    這篇文章主要給大家介紹了關(guān)于Windows系統(tǒng)中配置開(kāi)啟MySQL數(shù)據(jù)庫(kù)日志的完整步驟,大家要開(kāi)啟MySQL數(shù)據(jù)庫(kù)的日志功能,可以按照本文介紹的步驟進(jìn)行操作,需要的朋友可以參考下
    2023-09-09
  • MySQL中超級(jí)有用的14個(gè)小知識(shí)總結(jié)

    MySQL中超級(jí)有用的14個(gè)小知識(shí)總結(jié)

    在寫(xiě)SQL時(shí)經(jīng)常靈活運(yùn)用一些SQL語(yǔ)句編寫(xiě)的技巧,可以大大簡(jiǎn)化程序邏輯,下面這篇文章主要給大家介紹了關(guān)于MySQL中超級(jí)有用的14個(gè)小知識(shí),文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-12-12
  • MySQL如何添加環(huán)境變量和初始化MySQL

    MySQL如何添加環(huán)境變量和初始化MySQL

    本文主要介紹了如何在Windows系統(tǒng)中添加MySQL的環(huán)境變量以及如何初始化MySQL,通過(guò)添加環(huán)境變量,可以在任意一個(gè)命令提示符中直接調(diào)用MySQL的相關(guān)程序,大大簡(jiǎn)化了操作,初始化MySQL時(shí),需要新建一個(gè)配置文件并指定默認(rèn)編碼集和存儲(chǔ)引擎,如果初始化過(guò)程中出現(xiàn)錯(cuò)誤
    2024-11-11
  • mysql數(shù)據(jù)類(lèi)型和字段屬性原理與用法詳解

    mysql數(shù)據(jù)類(lèi)型和字段屬性原理與用法詳解

    這篇文章主要介紹了mysql數(shù)據(jù)類(lèi)型和字段屬性,結(jié)合實(shí)例形式分析了mysql數(shù)據(jù)類(lèi)型和字段屬性基本概念、原理、分類(lèi)、用法及操作注意事項(xiàng),需要的朋友可以參考下
    2020-04-04
  • mysql創(chuàng)建數(shù)據(jù)庫(kù),添加用戶(hù),用戶(hù)授權(quán)實(shí)操方法

    mysql創(chuàng)建數(shù)據(jù)庫(kù),添加用戶(hù),用戶(hù)授權(quán)實(shí)操方法

    在本篇文章里小編給大家整理的是關(guān)于mysql創(chuàng)建數(shù)據(jù)庫(kù),添加用戶(hù),用戶(hù)授權(quán)實(shí)操方法相關(guān)知識(shí)點(diǎn),需要的朋友們學(xué)習(xí)下。
    2019-10-10
  • MySQL HandlerSocket插件安裝配置教程

    MySQL HandlerSocket插件安裝配置教程

    這篇文章主要介紹了MySQL HandlerSocket插件安裝配置,包括PHP HandlerSocket插件的安裝配置,需要的朋友可以參考下
    2014-04-04

最新評(píng)論

丰镇市| 齐齐哈尔市| 昌邑市| 涿州市| 托克逊县| 澄江县| 潮州市| 海盐县| 大埔区| 长垣县| 资讯 | 当雄县| 峡江县| 萨嘎县| 咸宁市| 兴海县| 双鸭山市| 栾城县| 突泉县| 镶黄旗| 明水县| 女性| 牡丹江市| 南澳县| 珠海市| 紫阳县| 苗栗市| 图木舒克市| 佳木斯市| 黄石市| 大关县| 靖西县| 岐山县| 剑阁县| 廉江市| 天门市| 怀远县| 桐城市| 达日县| 汤阴县| 桐乡市|