InnoDB的行格式
一直對InnoDB的行格式不太了解,于是找了幾篇文章看了一下,總結(jié)一下
什么是行格式?
我們平時以記錄為單位向表中插入數(shù)據(jù),這些記錄在磁盤上的存放方式被稱為「行格式」或「記錄格式」。
行格式的應(yīng)用是針對于表的,只有創(chuàng)建表的時候使用行格式,在創(chuàng)建庫或插入數(shù)據(jù)的時候無法選擇行格式。
表的行格式?jīng)Q定了這張表下面的物理存儲方式,會影響查詢和DML操作的性能。
InnoDB的行格式分成以下4種:
Compact(行格式)
比Redundant格式存儲空間減少20%,查詢速度更快。
如果存在大量運算,可能會比Redundant慢。
使用這種格式的頁,前768字節(jié)的變長列值存在B樹索引記錄中,其余的字段被存儲在溢出頁上。
列值小于等于768字節(jié),不使用溢出頁,完全存儲在B樹索引中,節(jié)省IO。
Redundant(冗余行格式)
把前768字節(jié)的變長列值存在B樹節(jié)點的索引記錄中,多余的字節(jié)從會被存在溢出頁,如果小于768字節(jié),則列值在B樹中,節(jié)省了IO操作。
對于一些列類型為blob的較短值友好。
Dynamic(動態(tài)行格式)
跟compact相同的行存儲方式
長可變列
更大的索引鍵前綴的存儲能力
支持索引鍵前綴3072字節(jié)。
Compressed(壓縮行格式)
與Dynamic行格式相同的存儲特性和功能,在這個基礎(chǔ)上添加了對標(biāo)和索引數(shù)的支持。
需要啟用Innodb_file_per_table
各個行格式的優(yōu)缺點:
| 行格式 | 緊湊的存儲特性 | 增強的可變長度色譜柱存儲 | 大索引鍵前綴支持 | 壓縮支持 | 支持的表空間類型 |
| Redundant | 無 | 無 | 無 | 無 | 系統(tǒng),每表文件,常規(guī) |
| Compact | 有 | 無 | 無 | 無 | 系統(tǒng),每表文件,常規(guī) |
| Dynamic | 有 | 有 | 有 | 無 | 系統(tǒng),每表文件,常規(guī) |
| Compressed | 有 | 有 | 有 | 有 | 每表檔案,一般 |
參考:https://mp.weixin.qq.com/s/fgpk-DRqrAma5lauNxT6WQ、https://mp.weixin.qq.com/s/8Ma5BjQuDQrxWVtgvqS4UQ、https://blog.csdn.net/fhdsece/article/details/104974697
總結(jié)
以上是生活随笔為你收集整理的InnoDB的行格式的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 3nm弯道超车台积电之后 三星2nm工艺
- 下一篇: 163电子邮箱怎么注册申请?手机号注册电