Antelope是innodb-base的文件格式,Barracude是innodb-plugin后引入的文件格式,同時(shí)Barracude也支持Antelope文件格式。兩者區(qū)別在于:
| 文件格式 | 支持行格式 | 特性 |
| Antelope (Innodb-base) | ROW_FORMAT=COMPACT ROW_FORMAT=REDUNDANT | Compact和redumdant的區(qū)別在就是在于首部的存存內(nèi)容區(qū)別。 compact的存儲(chǔ)格式為首部為一個(gè)非NULL的變長(zhǎng)字段長(zhǎng)度列表 redundant的存儲(chǔ)格式為首部是一個(gè)字段長(zhǎng)度偏移列表(每個(gè)字段占用的字節(jié)長(zhǎng)度及其相應(yīng)的位移)。 在Antelope中對(duì)于變長(zhǎng)字段,低于768字節(jié)的,不會(huì)進(jìn)行overflow page存儲(chǔ),某些情況下會(huì)減少結(jié)果集IO. |
| Barracuda (innodb-plugin) | ROW_FORMAT=DYNAMIC ROW_FORMAT=COMPRESSED
| 這兩者主要是功能上的區(qū)別功能上的?!×硗庠谛欣锏淖冮L(zhǎng)字段和Antelope的區(qū)別是只存20個(gè)字節(jié),其它的overflow page存儲(chǔ)。 另外這兩都需要開(kāi)啟innodb_file_per_table=1 (這個(gè)特性對(duì)一些優(yōu)化還是很有用的) |
備注:
這里有一點(diǎn)需要注意,如果要使用壓縮,一定需要先使用innodb_file_format =Barracuda格式,不然沒(méi)作用。
下面我們看一下區(qū)別:
Database changed
(testing)root@localhost [wubx]> CREATE TABLE t1
-> (c1 INT PRIMARY KEY)
-> ROW_FORMAT=COMPRESSED
-> KEY_BLOCK_SIZE=8;
Query OK, 0 rows affected, 4 warnings (0.01 sec)