亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 數據庫 > MySQL > 正文

淺談innodb的索引頁結構,插入緩沖,自適應哈希索引

2024-07-24 13:12:51
字體:
來源:轉載
供稿:網友

Physical Structure of an InnoDB Index

所有的innodb索引都是btree索引,索引記錄保存在葉子上,默認的索引頁大小是16K。當有新的記錄插入時,innodb出于對將來的insert和update操作的考慮,會嘗試留下1/16的空閑頁大小。

如果索引記錄是完全按照索引記錄的大小順序插入的,那么索引也將填滿整個頁大小的15/16,如果插入順序完全隨機,那么索引頁基本上填充為1/2至15/16自建。如果填充因子低于1/2,innodb會嘗試重建b-tree。

Mysql5.6以后,可以通過innodb_page_size參數設置當前實例下每個索引頁的大小,一旦設定,無法再更改回來。推薦的配置一般是16K,8K或者4K。另外假如一個Mysql實例設置了不同于默認值的innodb_page_size A,那么將無法使用其他不同于A值的實例上的文件(比如做一個物理備份和恢復)

Insert Buffering

數據庫應用通常按照主鍵順序插入的,在這種情況下,因為聚集索引的順序和這個主鍵值的順序完全一致,insert操作將會減少很多的隨機IO。

另一方面,二級索引通常不是唯一的,那么在二級索引中插入數據時是一個相對隨機的順序。同樣的,delete和update操作在影響數據頁時,涉及到索引的變更,在二級索引上也并不是緊挨著的。這就導致了大量的隨機IO。

當插入一條記錄,或者從非唯一的二級索引刪除一條記錄,innodb首先會去檢查該二級索引頁是否在緩沖池中。如果在緩沖池,innodb將會直接在內存中修改這個索引頁。如果該索引也不在緩沖池,那么innodb將會將這個修改記錄到插入緩沖,也就是insertbuffer。Insert buffer通常都比較小,所以能夠保證全部在緩沖池中,并且更新非常頻繁。這個修改的進程就是change buffering(通常情況下,它只會只作用于insert操作,所以也被稱為insertbuffering,而該數據結構就是insert buffer)

Disk I/O for Flushing the Insert Buffer

那么插入緩沖如何減少隨機IO的呢?每個一段時間,insert buffer會去合并在insertbuffer中的二級非唯一索引。通常情況下,它會合并N個修改到同一個btree索引的索引頁中,從而節約了很多IO操作。經測試,insertbuffer可以提高15倍的插入速度。

在事務提交后,insert buffer可能還在合并寫入。所以,假如當DB異常重啟,reovery階段,當有非常多的二級索引需要更新或插入時,insert buffer將可能花費很長時間,甚至幾個小時。在這個階段,磁盤IO將會增加,那么就會導致disk-bound類型的查詢有顯著的性能下滑。

Adaptive Hash Indexes

自適應哈希索引(AHI)使得innodb在緩沖池擁有足夠的內存和某些工作負載下,看起來更像一個內存數據庫,并且不會犧牲任何事務的特點和穩定性。這個特色由參數innodb_adaptive_hash_index控制,動態參數,默認為on表示打開自適應哈希索引,關閉AHI后內置哈希表將會被立馬清空,而正常的操作依舊可以繼續,只是直接通過訪問B-TREE索引。重新使能AHI后哈希表又會被重建。

通過觀察搜素模式,mysql會利用index key的前綴建立哈希索引,這個前綴可以是任意長度,并且它可能僅僅是B-tree上的某些值,而不是整個b-tree。哈希索引通過檢測,會在經常被訪問的index pages上建立哈希索引。

如果一個表幾乎大部分都在緩沖池中,那么建立一個哈希索引能夠加快等值查詢,通過將btree的索引值轉換成一個排序指針。Innodb有這個機制,可以監控索引的搜索情況,如果它注意到有些查詢通過建立哈希索引可以優化查詢,那么它會自動建立,所以說它是“自適應的”。

在某些工作負載下,通過哈希索引查找帶來的性能提升價值遠大于這個額外的監控索引搜索情況和保持這個哈希表結構所帶來的開銷。但某些時候,在負載較高的情況下,自適應哈希索引中添加的read/write 鎖也會帶來競爭,比如高并發的join操作。Like操作和%的通配符同樣不適用于AHI。如果工作負載不適合AHI,建議將它關閉,以免帶來不必要的性能開銷。因為mysql內部很難預示在一個特定的場合下AHI到底是否合適,推薦做一個實際工作負載的壓測(有無AHI兩種情況)。在5.6及以后版本中將會考慮讓越來越多的工作負載最好disable掉自適應哈希索引,盡管目前而言它默認還是開啟的。

哈希索引的創建往往是基于現有的b-tree,innodb可以通過觀察b-tree的搜索情況建立任意長度的b-tree索引前綴的方式建立哈希索引。一個哈希索引可以只是部分的,僅包括b-tree index中最經常被訪問到的頁。

你可以通過觀察show engine innodb status結果中的SEMAPHORES部分來決定是否使用自適應哈希索引。如果你看到很多線程都在btr0sea.c文件上創建rw-latch上waiting,那么建議關閉掉自適應哈希索引。本人曾經碰到過的一個case截圖如下,典型的高并發模式下AHI引起的競爭,需要關閉AHI

mysql,自適應哈希索引,innodb

以上這篇淺談innodb的索引頁結構,插入緩沖,自適應哈希索引就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持VeVb武林網。


注:相關教程知識閱讀請移步到MYSQL教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美成人免费一级人片100| 欧美性一区二区三区| 亚洲综合自拍一区| 亚洲第一男人天堂| 91av免费观看91av精品在线| 欧美性猛交xxxx免费看久久久| 国产精品久久99久久| zzjj国产精品一区二区| 久久久www成人免费精品张筱雨| 狠狠躁夜夜躁久久躁别揉| 欧美激情久久久久| 中文字幕日韩av| 欧美日韩亚洲成人| 日本精品视频在线播放| 国产视频亚洲视频| 国产精品海角社区在线观看| 1769国产精品| 91国产一区在线| 日韩网站免费观看高清| 亚洲国产精品久久久久秋霞不卡| 热久久99这里有精品| 91久久久久久久久久| 日本三级久久久| 久久精品国产一区二区三区| 亚洲国产女人aaa毛片在线| 日韩av片免费在线观看| 国产精品高潮呻吟久久av黑人| 亚洲日本中文字幕免费在线不卡| 91亚洲人电影| 欧美黑人性视频| 亚洲视频欧洲视频| 中文国产成人精品| 尤物九九久久国产精品的特点| 欧美成人久久久| 欧美国产日韩免费| 日韩电影免费观看中文字幕| 在线播放国产一区二区三区| 91影视免费在线观看| 91免费电影网站| 日本成人精品在线| 欧美午夜无遮挡| 欧美人在线视频| 日韩福利伦理影院免费| 欧美亚洲伦理www| 尤物yw午夜国产精品视频| 欧美日韩免费观看中文| 不卡中文字幕av| 午夜精品福利电影| 欧美中文字幕精品| 狠狠躁夜夜躁人人爽天天天天97| 欧美国产日韩一区| 国产精品视频专区| 欧美夜福利tv在线| 91chinesevideo永久地址| 日韩美女在线播放| 欧美日韩国产成人高清视频| 国产91在线高潮白浆在线观看| 欧美猛少妇色xxxxx| 亚洲欧美日韩中文在线| 亚洲色图美腿丝袜| 午夜精品在线观看| 永久555www成人免费| 国产精彩精品视频| 亚洲福利视频免费观看| 91久久精品美女| 亚洲精品美女免费| 视频一区视频二区国产精品| 中文亚洲视频在线| 亚洲嫩模很污视频| 亚洲国产日韩欧美在线动漫| 欧美电影在线观看高清| 欧美福利视频在线观看| 亚洲xxxx妇黄裸体| 精品久久久久人成| 精品成人国产在线观看男人呻吟| 中文字幕欧美日韩va免费视频| 欧美性猛交xxxx乱大交| 国产视频一区在线| 亚洲成人网av| 久久久免费在线观看| 日韩中文字幕不卡视频| 久久久久久久久久久免费精品| 91国产在线精品| 亚洲精品网址在线观看| 亚洲成人激情小说| 亚洲成年人在线| 欧美巨猛xxxx猛交黑人97人| 亚洲国产精品悠悠久久琪琪| 亚洲精品久久久久久久久久久久久| 亚洲天堂第一页| 中文字幕一区二区精品| 欧美性一区二区三区| 久久久久久久97| 欧美刺激性大交免费视频| 亚洲伊人第一页| 狠狠躁18三区二区一区| 91探花福利精品国产自产在线| 国产日韩在线免费| 97精品国产97久久久久久春色| 国产精品十八以下禁看| 精品色蜜蜜精品视频在线观看| 国产美女精彩久久| 九九九久久国产免费| 国产91在线播放九色快色| 一区二区三欧美| 91热精品视频| 国产一区二区三区四区福利| 国产精品久久久久久久久久| 97热在线精品视频在线观看| 国产精品99蜜臀久久不卡二区| 高清欧美性猛交xxxx| 成人黄色免费看| 日韩欧美成人区| 97视频在线观看亚洲| 国产精品免费久久久久影院| 欧美日在线观看| 伊人成人开心激情综合网| 国产精品扒开腿爽爽爽视频| 亚洲成人久久久| 亚洲视频国产视频| 最近2019年好看中文字幕视频| 色999日韩欧美国产| 国产一区二区黄| 2019中文字幕在线免费观看| 亚洲一区www| 欧美特黄级在线| 久久亚洲影音av资源网| 国产精品免费久久久久久| 久久久在线免费观看| 日韩在线视频一区| 亚洲国产精品悠悠久久琪琪| 一本色道久久综合亚洲精品小说| 色综合久久久久久中文网| 国产剧情日韩欧美| 亚洲国产成人一区| 欧美激情一区二区三区在线视频观看| 国模吧一区二区| 国产69精品99久久久久久宅男| 亚洲精品久久久久| 亚洲欧洲在线视频| 国产99视频在线观看| 日韩在线欧美在线国产在线| 992tv在线成人免费观看| 亚洲欧美自拍一区| 国产欧美日韩中文字幕在线| 在线电影欧美日韩一区二区私密| 日韩视频第一页| 精品欧美国产一区二区三区| 日韩av高清不卡| 国产午夜精品全部视频在线播放| 热久久视久久精品18亚洲精品| 欧美激情视频一区二区三区不卡| www国产精品com| 精品福利免费观看| 欧美黄色成人网| 欧美大片在线免费观看| 色噜噜狠狠狠综合曰曰曰88av| 亚洲欧美综合精品久久成人| 日韩不卡中文字幕| 久久99精品久久久久久噜噜| 97超级碰在线看视频免费在线看| 成人综合国产精品| 中国人与牲禽动交精品| 亚洲国产小视频|