国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Mysql8.0為什么取消了緩存查詢的功能

這篇具有很好參考價值的文章主要介紹了Mysql8.0為什么取消了緩存查詢的功能。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

首先我們介紹一下MySQL的緩存機(jī)制

【MySQL緩存機(jī)制】簡單的說就是緩存sql文本及查詢結(jié)果,如果運行完全相同的SQL,服務(wù)器直接從緩存中取到結(jié)果,而不需要再去解析和執(zhí)行SQL。

但如果表中任何數(shù)據(jù)或是結(jié)構(gòu)發(fā)生改變,包括INSERT、UPDATE、DELETE、TRUNCATE、ALTER TABLE、DROP TABLE或DROP DATABASE等,最簡單的就是我們在SQL語句中多了空格啥的,注釋,或者是大小寫,那么hashmap中的key和value對應(yīng)都是不一樣的,那么使用這個表的所有緩存查詢將不再有效。。

緩存是對系統(tǒng)性能優(yōu)化的重要手段。。。

主要是因為

1.MySQL緩存是基于Hashmap的:查詢語句的字符大小寫、空格或者注釋的不同,緩存查詢都會認(rèn)為是不同的查詢(因為他們的hash值會不同)

2.MySQL會對每條接收到的SELECT類型的查詢進(jìn)行hash計算,然后查找這個查詢的緩存結(jié)果是否存在。雖然hash計算和查找的效率已經(jīng)足夠高了,一條查詢語句所帶來的開銷可以忽略,但一旦涉及到高并發(fā),有成千上萬條查詢語句時,hash計算和查找所帶來的開銷就必須重視了。。。

3.也就是修改某個表的內(nèi)容時,之前緩存的內(nèi)容對于現(xiàn)在的數(shù)據(jù)來說就是錯誤的數(shù)據(jù),所以我們要將之前的緩存數(shù)據(jù)刪除,來保證數(shù)據(jù)的正確性。當(dāng)向某個表寫入數(shù)據(jù)的時候,必須將和這個表相關(guān)的所有緩存設(shè)置為失效,如果緩存內(nèi)容很多,則消耗也會很大,可能使系統(tǒng)僵死,因為這個操作是靠全局鎖操作來保護(hù)的。。

總結(jié)

所以綜合上述的內(nèi)容,我們知道原因就是如果數(shù)據(jù)都要緩存起來,一旦這些數(shù)據(jù)都發(fā)生改變時,需要更改,我們又需要把這些緩存刪除,數(shù)據(jù)量大時,就會很慢,效率低。

解決思路是:把一些容易變動的數(shù)據(jù)還是存在磁盤上,而不是在緩存中,這樣就是省去了緩存改來改去的問題。。

解決方案:運用了新的數(shù)據(jù)庫Redis?

介紹一下redis ----Redis是當(dāng)前比較熱門的NoSQL系統(tǒng)之一---,Redis數(shù)據(jù)都是緩存在計算機(jī)內(nèi)存中。。用redis去存儲熱點數(shù)據(jù),也是那些在數(shù)據(jù)庫中大量的人去訪問的數(shù)據(jù)。。

NoSQL,泛指非關(guān)系型的數(shù)據(jù)庫區(qū)別于關(guān)系數(shù)據(jù)庫,它們不保證關(guān)系數(shù)據(jù)的ACID特性。。。。

?

這里我們又要引入事務(wù)的概念,如下:

事務(wù)定義

事務(wù)是一系列操作組成的工作單元,該工作單元內(nèi)的操作是不可分割的,即要么所有操作都做,要么所有操作都不做,這就是事務(wù)。

???????理解一:

???????事務(wù)可以看做是一次大的活動,它由不同的小活動組成,這些活動要么全部成功,要么全部失敗。

???????理解二:

???????事務(wù)可以看做是一個大的操作,它由一系列操作組成,這些操作要么全部成功,要么全部失敗。

?

ACID---事務(wù)的四大特性 ---原子性(Atomicity)、一致性(Consistency)、隔離性(Isolation)、持久性(Durability)

A:事務(wù)是一個不可分割的整體,事務(wù)中的操作要么全部成功,要么全部失敗。。

舉一個SQL事務(wù)的例子:
begin
transaction; update account set money = money-100 where name = '張三'; update account set money = money+100 where name = '李四'; commit transaction;
這里面的兩個操作必須都成功或者都失敗。。。。。

?

B:我們來看一段狗屁話:事務(wù)必須使數(shù)據(jù)庫從一個一致性狀態(tài)變換到另外一個一致性狀態(tài),能理解?????

個人認(rèn)為就是執(zhí)行這操作能夠達(dá)到你的目的,然后不出錯,在編寫中體現(xiàn)在語法和實現(xiàn)是否可行,在功能上就是可以保證最后的結(jié)果和你的想法是一致的。。。

?

I:隔離性體現(xiàn)在:多個用戶并發(fā)訪問數(shù)據(jù)庫時,數(shù)據(jù)庫為每一個用戶開啟的事務(wù),不能被其他事務(wù)的操作數(shù)據(jù)所干擾,多個并發(fā)事務(wù)之間要相互隔離。

?

D:持久性是指一個事務(wù)一旦被提交,它對數(shù)據(jù)庫中數(shù)據(jù)的改變就是永久性的,接下來即使數(shù)據(jù)庫發(fā)生故障也不應(yīng)該對其有任何影響。

也就是說,給你造成了影響,你一旦告訴我你操作成功了,是不可以不執(zhí)行的。。。。

?

?

本地事務(wù)的實現(xiàn):

begin transaction;

  //1.本地數(shù)據(jù)庫操作:張三減少100元。

  //2.本地數(shù)據(jù)庫操作:李四增加100元。

commit transaction;


分布式事務(wù)的實現(xiàn):

begin transaction;

  //1.本地數(shù)據(jù)庫操作:張三減少100元。

  //2.遠(yuǎn)程調(diào)用:讓李四增加100元。

commit transaction; 

?文章來源地址http://www.zghlxwxcb.cn/news/detail-419476.html

到了這里,關(guān)于Mysql8.0為什么取消了緩存查詢的功能的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 2023-05-24:為什么要使用Redis做緩存?

    2023-05-24:為什么要使用Redis做緩存?

    2023-05-24:為什么要使用Redis做緩存? 答案2023-05-24: 緩存的好處 買啤酒和喝啤酒的例子可以幫助我們理解緩存的好處。 假設(shè)你在超市里買了一箱啤酒,如果你需要每次想喝啤酒就去超市購買,無疑會浪費很多時間和精力。而如果你將一部分啤酒放在家中的冰箱里,每次想喝

    2024年02月06日
    瀏覽(19)
  • Spring 為什么要用三級緩存來解決循環(huán)依賴(AOP),二級緩存不行嗎

    解決有代理對象的循環(huán)依賴不一定要三級緩存,用二級甚至一級也能解決,下面討論下Spring為什么選擇三級緩存這個方案。 Spring最開始是沒有三級緩存的,后面版本因為引入了AOP,有了代理對象,又因為存在循環(huán)依賴,為了保證依賴注入過程注入的是代理對象,且不完全打破

    2024年04月26日
    瀏覽(23)
  • 并發(fā)術(shù)語——緩存行填充【結(jié)合Boolean為什么占32位解釋】

    當(dāng)多個線程同時訪問不同的數(shù)據(jù),但這些數(shù)據(jù)位于同一緩存行時,可能會導(dǎo)致性能下降。緩存行填充是一種優(yōu)化技術(shù),通過在數(shù)據(jù)之間插入一些無意義的填充數(shù)據(jù),使它們位于不同的緩存行上,從而避免了不同線程同時修改同一緩存行的情況。 想象一下,你和你的朋友同時在

    2024年02月16日
    瀏覽(31)
  • [20231023]為什么刷新緩存后輸出記錄順序發(fā)生變化6.txt

    [20231023]為什么刷新緩存后輸出記錄順序發(fā)生變化6.txt --//前幾天做了單表刷新緩存后輸出記錄順序發(fā)生變化的情況,測試2個表的情況時遇到一個奇怪的現(xiàn)象。 --//我前面的測試18c,如果使用10046跟蹤看不到我遇到的情況,我想使用strace跟蹤,發(fā)現(xiàn)該機(jī)器配置使用asm,strace跟蹤無法

    2024年02月06日
    瀏覽(37)
  • [20231013]為什么刷新緩存后輸出記錄順序發(fā)生變化3.txt

    [20231013]為什么刷新緩存后輸出記錄順序發(fā)生變化3.txt --//當(dāng)年提的問題,鏈接http://blog.itpub.net/267265/viewspace-2763181/= [20210316]為什么刷新緩存后輸出記錄順序發(fā)生變化.txt, --//正好別人問我,順便我重復(fù)看了一下,順便解答這個問題,實際上也許解答不對,許多行為我僅僅是猜測

    2024年02月08日
    瀏覽(27)
  • 大數(shù)據(jù)面試題:HBase為什么查詢快

    面試題來源: 《大數(shù)據(jù)面試題 V4.0》 大數(shù)據(jù)面試題V3.0,523道題,679頁,46w字 可回答:1)HBase為什么讀快;2)HBase是根據(jù)rowkey查詢,當(dāng)數(shù)據(jù)量相當(dāng)大的時候,是怎么讀的很快的 參考答案: 1、基于LSM樹的存儲方式 HBase采用基于LSM樹的存儲方式,這種存儲方式將數(shù)據(jù)分為內(nèi)存和

    2024年02月12日
    瀏覽(23)
  • ElasticSearch(七):ES查詢速度為什么那么快

    ElasticSearch(七):ES查詢速度為什么那么快

    介紹給大家一個開源SpringCloud項目。整合了大部分開源中間件,詳情信息可以查看文檔: spring cloud開源組件開發(fā) 另外自己以后博客所講解的代碼內(nèi)容,都會我的Git上同步(GitHub同步)GIT地址 ES使用的數(shù)據(jù)結(jié)構(gòu)是倒排索引,在對搜索內(nèi)容進(jìn)行分詞的時候,會根據(jù)搜索內(nèi)容分詞結(jié)

    2023年04月08日
    瀏覽(31)
  • ElasticSearch第七講:ES查詢速度為什么那么快

    ElasticSearch第七講:ES查詢速度為什么那么快

    介紹給大家一個開源SpringCloud項目。整合了大部分開源中間件,詳情信息可以查看文檔: spring cloud開源組件開發(fā) 另外自己以后博客所講解的代碼內(nèi)容,都會我的Git上同步(GitHub同步)GIT地址 ES使用的數(shù)據(jù)結(jié)構(gòu)是倒排索引,在對搜索內(nèi)容進(jìn)行分詞的時候,會根據(jù)搜索內(nèi)容分詞結(jié)

    2023年04月19日
    瀏覽(23)
  • ElasticSearch第七講 ES查詢速度為什么那么快

    ElasticSearch第七講 ES查詢速度為什么那么快

    介紹給大家一個開源SpringCloud項目。整合了大部分開源中間件,詳情信息可以查看文檔: spring cloud開源組件開發(fā) 另外自己以后博客所講解的代碼內(nèi)容,都會我的Git上同步(GitHub同步)GIT地址 ES使用的數(shù)據(jù)結(jié)構(gòu)是倒排索引,在對搜索內(nèi)容進(jìn)行分詞的時候,會根據(jù)搜索內(nèi)容分詞結(jié)

    2023年04月25日
    瀏覽(31)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包