change buffer中文翻譯,change buffer是什么意思,change buffer發(fā)音、用法及例句
- 內容導航:
- 1、change buffer
- 2、mysql之普通索引和唯一索引
1、change buffer
change buffer發(fā)音
英: 美:
change buffer中文意思翻譯
常見(jiàn)釋義:
更改緩沖區
change buffer雙語(yǔ)使用場(chǎng)景
1、Attacking using a buffer overflow can change this process and allow an attacker to execute any function they wish.───利用緩沖區溢出進(jìn)行攻擊可以改變這個(gè)過(guò)程,并且允許黑客執行任何他們期望的函數。
2、With DB2 Version 8 and higher, you can change buffer pool sizes without shutting down the database.───對于DB 2 Version 8及更高版本,可以在不關(guān)閉數據庫的情況下更改緩沖池大小。
3、If the database is not started, you cannot connect to the database and change the buffer pool sizes.───如果數據庫沒(méi)有啟動(dòng),那么就不能連接到數據庫,也就不能更改緩沖池的大小。
change buffer相似詞語(yǔ)短語(yǔ)
1、staining buffer───染色緩沖液
2、buffer stock───緩沖庫存;調節性庫存儲備
3、cacodylate buffer───[醫]二甲胂酸-二甲胂酸鈉緩沖液,二甲砷酸鹽緩沖液;二甲胂酸緩沖液
4、stencil buffer───模板緩沖
5、buffer fly───緩沖飛行
6、change───v.改變,轉變,(使)不同;(使)變換;替代,更換;交換;貨幣兌換;將……換成零錢(qián);退還;n.變化,改變;替代物;換洗衣物;零錢(qián),硬幣;換乘;全新體驗;新月相的出現
7、body buffer───車(chē)身緩沖器
8、buffer tank───緩沖罐
9、buffer space───緩沖間隔
2、mysql之普通索引和唯一索引
常見(jiàn)的索引類(lèi)型:哈希表、有序數組、搜索樹(shù)。
mysql之普通索引和唯一索引。
執行查詢(xún)的語(yǔ)句是 select id from T where k=5
這個(gè)查詢(xún)語(yǔ)句在索引樹(shù)上查找的過(guò)程,先是通過(guò) B+ 樹(shù)從樹(shù)根開(kāi)始,按層搜索到葉子節點(diǎn),也就是圖中右下角的這個(gè)數據頁(yè),然后可以認為數據頁(yè)內部通過(guò)二分法來(lái)定位記錄。
InnoDB的索引組織結構:
change buffer:持久化的數據。InnoDB將更新操作緩存在 change buffer中,也就是說(shuō),change buffer 在內存中有拷貝,也會(huì )被寫(xiě)入到磁盤(pán),主要節省的則是隨機讀磁盤(pán)的IO消耗。
change buffer 只限于用在普通索引的場(chǎng)景下,而不適用于唯一索引.
merge:將 change buffer 中的操作應用到原數據頁(yè),得到最新結果的過(guò)程。
merge執行流程:
1、從磁盤(pán)讀入數據頁(yè)到內存
2、從change buffer里找出這個(gè)數據頁(yè)的change buffer記錄,依次應用,得到新版數據頁(yè)
3、寫(xiě)redo log,這個(gè)redo log包含了數據的變更和change buffer的變更。
change buffer 用的是 buffer pool 里的內存,因此不能無(wú)限增大。change buffer 的大小,可以通過(guò)參數 innodb_change_buffer_max_size=50 表示 change buffer 的大小最多只能占用 buffer pool 的 50%。
如果要在這張表中插入一個(gè)新記錄 (4,400) 的話(huà),InnoDB 的處理流程是怎樣的。
第一種情況是,這個(gè)記錄要更新的目標頁(yè)在內存中
這時(shí),InnoDB 的處理流程如下:
第二種情況是,這個(gè)記錄要更新的目標頁(yè)不在內存中
這時(shí),InnoDB 的處理流程如下:
mysql> insert into t(id,k) values(id1,k1),(id2,k2); 當前 k 索引樹(shù)的狀態(tài),查找到位置后,k1 所在的數據頁(yè)在內存 (InnoDB buffer pool) 中,k2 所在的數據頁(yè)不在內存中。
分析這條更新語(yǔ)句,你會(huì )發(fā)現它涉及了四個(gè)部分:內存、redo log(ib_log_fileX)、 數據表空間(t.ibd)、系統表空間(ibdata1)。這條更新語(yǔ)句做了如下的操作(按照圖中的數字順序):
帶change buffer的更新過(guò)程:
select * from t where k in (k1, k2) ,如果讀語(yǔ)句發(fā)生在更新語(yǔ)句后不久,內存中的數據都還在,那么此時(shí)的這兩個(gè)讀操作就與系統表空間(ibdata1)和 redo log(ib_log_fileX)無(wú)關(guān)了.
版權聲明: 本站僅提供信息存儲空間服務(wù),旨在傳遞更多信息,不擁有所有權,不承擔相關(guān)法律責任,不代表本網(wǎng)贊同其觀(guān)點(diǎn)和對其真實(shí)性負責。如因作品內容、版權和其它問(wèn)題需要同本網(wǎng)聯(lián)系的,請發(fā)送郵件至 舉報,一經(jīng)查實(shí),本站將立刻刪除。