日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > 数据库 >内容正文

数据库

mysql查看隔离模式_InnoDB 隔离模式对 MySQL 性能的影响

發(fā)布時(shí)間:2025/4/5 数据库 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql查看隔离模式_InnoDB 隔离模式对 MySQL 性能的影响 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

過(guò)去的幾個(gè)月我寫了兩篇文章,一篇是InnoDB 事務(wù)歷史相關(guān)的危險(xiǎn)債務(wù),另一篇是關(guān)于MVCC 可能導(dǎo)致MySQL嚴(yán)重的性能問(wèn)題的真相。在這篇文章里我將討論一個(gè)相關(guān)的主題 – InnoDB 事務(wù)隔離模式,還有它們與MVCC(多版本并發(fā)控制)的關(guān)系,以及它們是如何影響MySQL性能的。

MySQL手冊(cè)提供了一個(gè)關(guān)于MySQL支持的事務(wù)隔離模式的恰當(dāng)描述?– 在這里我并不會(huì)再重復(fù),而是聚焦到對(duì)性能的影響上。

SERIALIZABLE?– 這是最強(qiáng)的隔離模式,本質(zhì)上打敗了在鎖管理(設(shè)置鎖是很昂貴的)的條件下,多版本控制對(duì)所有選擇進(jìn)行鎖定造成大量的開(kāi)銷,還有你得到的并發(fā)。這個(gè)模式僅在MySQL應(yīng)用中非常特殊的情況下使用。

REPEATABLE READ?– 這是默認(rèn)的隔離級(jí)別,通常它是相當(dāng)不錯(cuò)的,對(duì)應(yīng)用程序的便捷性來(lái)說(shuō)也不錯(cuò)。它在第一次的時(shí)候讀入所有數(shù)據(jù) (假設(shè)使用標(biāo)準(zhǔn)的非鎖讀)。但是這有很高的代價(jià) – InnoDB需要去維護(hù)事務(wù)記錄,從一開(kāi)始就要記錄,它的代價(jià)是非常昂貴的。更為嚴(yán)重的情況是,程序頻繁地更新和hot rows?– 你真的就不想InnoDB去處理rows了,它有成百上千個(gè)版本。

在性能上的影響, 讀和寫都能夠被影響。用select查詢遍歷多個(gè)行是代價(jià)高昂的,對(duì)于更新(update)也是,在MySQL 5.6中,尤其是版本控制看起來(lái)導(dǎo)致了嚴(yán)重的爭(zhēng)用問(wèn)題。

下面是例子:完全在內(nèi)存中的數(shù)據(jù)集中運(yùn)行 sysbench,并啟動(dòng) transaction?、運(yùn)行全表、掃描、查詢幾次,同時(shí)保持 transaction?是開(kāi)著的:

sysbench? –num-threads=64 –report-interval=10 –max-time=0 –max-requests=0 –rand-type=pareto –oltp-table-size=80000000 –mysql-user=root –mysql-password= –mysql-db=sbinnodb? –test=/usr/share/doc/sysbench/tests/db/update_index.lua run

正如你可以看到的,寫(write?)操作的吞吐量大幅下降,并且持續(xù)走低,這時(shí)transaction?是開(kāi)著的,不僅是在查詢(query)操作運(yùn)行的時(shí)候。在可復(fù)讀的隔離模式下,當(dāng)你已經(jīng)選擇了之外的transaction ,緊接著就是一個(gè)long transaction ,這也許是我能找到的最糟糕情況了。當(dāng)然了你也會(huì)在其他情況下看到回歸算法(regression?)。

如果有人想測(cè)試,可以重復(fù)下面我用的查詢集合:

READ UNCOMMITTED?– 我覺(jué)得這是最難理解的隔離模式(悲催的只有2條文檔),只描述了它的邏輯觀點(diǎn)。如果你使用了這種隔離模式,你會(huì)看到數(shù)據(jù)控中所有發(fā)生的變化,即使是那些還沒(méi)被提交的transactions 。這種隔離模式一種好的用例是:你能“watch”到大規(guī)模的有臟讀(dirty reads)的UPDATE 語(yǔ)句,顯示了哪行被改變了,哪些沒(méi)有改變。

如果transaction 事務(wù)在運(yùn)行的時(shí)候出錯(cuò)了,那么這個(gè)聲明會(huì)顯示還沒(méi)被提交的和可能沒(méi)被提交的變化,所以使用這個(gè)模式要小心為妙。有一些用例雖然不需要我們100%準(zhǔn)確的數(shù)據(jù),在這種情況下,這種模式就變得非常方便。

select avg(length(c)) from sbtest1;

begin;

select avg(length(c)) from sbtest1;

select sleep(300);

commit;

不只是可復(fù)讀(Repeatable Read)的默認(rèn)隔離級(jí)別,同樣也可以用于InnoDB?邏輯備份?– ?mydumper?或者?mysqldump –single-transaction

這些結(jié)果顯示這個(gè)備份的方法恢復(fù)的時(shí)間太長(zhǎng)而不能用于大型數(shù)據(jù)集合,同樣這個(gè)方法受到性能影響,也不能用于頻繁寫入(write?)的環(huán)境中。

READ COMMITTED模式和REPEATABLE READ模式很相似,本質(zhì)區(qū)別在于哪個(gè)版本都不在transaction中從頭開(kāi)始讀取,取而代之的從當(dāng)前語(yǔ)句開(kāi)始讀取。因此使用這種模式允許InnoDB少維護(hù)很多版本,特別是你沒(méi)有很長(zhǎng)的statements要允運(yùn)行。如果你有很長(zhǎng)的select要運(yùn)行,如報(bào)表查詢對(duì)性能的影響仍然很嚴(yán)重。

通常我認(rèn)為好的做法是把READ COMITTED隔離模式做為默認(rèn),對(duì)于應(yīng)用程序或者transactions 有必要就改成REPEATABLE READ。

那么,從性能角度來(lái)看,如何體現(xiàn)READ UNCOMMITTED?理論上,InnoDB 可以清除行版本,在READ UNCOMMITTED模式下即便是該語(yǔ)句已經(jīng)開(kāi)始執(zhí)行之后,也可以創(chuàng)建。在實(shí)踐中,由于一個(gè)bug或者一些復(fù)雜實(shí)現(xiàn)的細(xì)節(jié)做不到,語(yǔ)句開(kāi)始仍然是行版本。所以,如果你在READ UNCOMMITTED聲明中運(yùn)行很長(zhǎng)的SELECT,你會(huì)得到大量的行版本創(chuàng)建信息,就像你用了READ COMMITTED。No win here。

從SELECT方面還有一個(gè)重要的win – READ UNCOMMITTED隔離模式意味著InnoDB 不需要去檢查舊的行版本 – 最后一行總是對(duì)的,這會(huì)使得性能有明顯的改善,尤其是當(dāng)undo空間已經(jīng)在磁盤上溢出,查找舊的行版本會(huì)造成大量的IO讀寫。

也許上面這個(gè)select avg(k) from sbtest1;是我能找到的最好的查詢例子了,能與之類似的更新工作量。假使READ UNCOMMITTED隔離模式在一分鐘左右完成,我認(rèn)為在READ COMMITTED隔離模式下沒(méi)有完成過(guò),因?yàn)樾滤饕龡l目插入的速度要比掃描速度快。

最后思考:正確的使用InnoDB?隔離模式,能夠讓您的應(yīng)用程序得到最佳性能。你得到的好處可能不同,在某些情況下,也可能沒(méi)什么區(qū)別。關(guān)系到InnoDB 的歷史版本,似乎好有好多工作要做,我希望在未來(lái)的MySQL中能解決。

總結(jié)

以上是生活随笔為你收集整理的mysql查看隔离模式_InnoDB 隔离模式对 MySQL 性能的影响的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 免费观看nba乐趣影院 | 久色网| 欧美 日韩 国产在线 | 丰满肥臀噗嗤啊x99av | 青草久久网 | 天天色天天看 | 久久久久久网址 | 奇米影视第四色7777 | 欧美性猛交乱大交xxxx | 日韩欧美一二三 | 88av.com| 中国黄色一级毛片 | 亚洲一区二区福利 | www黄色片网站 | 丰满大乳露双乳呻吟 | 日本吃奶摸下激烈网站动漫 | 国产老头和老头xxxx× | 尤物在线观看 | 影音先锋一区 | 久久精品性| 亚洲黄色视屏 | 人禽l交视频在线播放 视频 | 日日色av | 日本久久综合 | 国产人成一区二区三区影院 | av在线天天 | 亚洲av永久中文无码精品综合 | 亚洲av无码精品色午夜 | 无码人妻精品一区二区三区夜夜嗨 | 国产成人97精品免费看片 | 亚洲最大激情网 | 亚洲av无码精品色午夜果冻不卡 | 国产精品欧美在线 | 能看的av| 成人免费黄色片 | 亚洲第四页| 网站免费视频www | 免费在线视频一区二区 | 人妻一区二区三区在线 | 欧美日韩乱 | 伊人三区 | 曰批免费视频播放免费 | 日韩欧美一二三 | 亚洲高清av在线 | 日韩1区2区3区 | 色婷婷综合五月 | 97超碰在线资源 | 男生和女生一起差差差很痛的视频 | 中文字幕在线视频第一页 | 亚洲专区在线视频 | 成人在线播放av | 国产高清一级 | 香蕉久久久久久久av网站 | 在线免费黄色网址 | 中文字幕一区二区久久人妻 | 国产77777 | 午夜av导航 | 波多野吉衣中文字幕 | 体内射精一区二区 | 夫妻性生活自拍 | 欧美日韩精品久久久免费观看 | wwwa级片 | 三级av片| 男人av在线| 国产精品欧美激情在线播放 | 久久久久美女 | 国产99精品视频 | 免费在线观看日韩 | 亚洲综合天堂 | 99久久久久成人国产免费 | 人人操在线播放 | 国产精品白虎 | 亚洲人性生活视频 | 亚洲国产综合在线 | 粉嫩aⅴ一区二区三区 | a级国产毛片 | 操穴网站 | 国产午夜成人久久无码一区二区 | 少妇性高潮视频 | 日本亲近相奷中文字幕 | 午夜影院18 | 91大神在线观看视频 | 亚洲av无码国产精品色午夜 | 毛片基地在线播放 | 女生下面流水视频 | 国产无限制自拍 | 黑人性xxx| 亚洲一区二区中文 | 解开乳罩喂领导吃奶 | 国产片淫乱18一级毛片动态图 | 亚洲成a人片777777久久 | 性按摩玩人妻hd中文字幕 | 国产三级91 | 日韩精品在线观看一区二区 | 亚洲av无码片一区二区三区 | 久草福利在线观看 | 污视频大全 | 四虎黄色影院 | 亚洲一区二区三区四区电影 |