首页 > 代码库 > Antelope 和Barracuda区别

Antelope 和Barracuda区别


Antelope和Barracuda均为innodb存储引擎的文件格式,Antelope为默认格式,非压缩;Barracuda为压缩格式;两者主要的不同在于对大数据量的存储时所占用的空间差异。
若要使用innodb的压缩功能,则必须使用innodb_file_format=Barracuda,不然没有作用。
接下来以一组实验来验证这两种不同存储格式带来的空间消耗差异。

Antelope
create table t_antelope(id int primary key auto_increment not null,descirption varchar(20)) engine=innodb;

delimiter $$
create procedure proc_antelope()
begin
declare i int;
set i = 1;
while i <= 1000000 do
insert into t_antelope values(i,‘this is a test‘);
set i = i + 1;
end while;
end $$


Barracuda
create table t_barracuda(id int primary key auto_increment not null,descirption varchar(20)) engine=innodb row_format=compressed;

delimiter $$
create procedure proc_barracuda()
begin
declare i int;
set i = 1;
while i <= 1000000 do
insert into t_barracuda values(i,‘this is a test‘);
set i = i + 1;
end while;
end $$

begin;call proc_antelope();commit;
begin;call proc_barracuda();commit;
实验结果:
antelope格式的数据文件大小为49M,数据插入时间18.42S,commit时间0.36S
barracuda格式的数据文件大小为23M,数据插入时间55.9S,commit时间4.63S

可见Barracuda格式可以节省很多空间,但数据插入处理过程的耗时也非常高

Antelope 和Barracuda区别