加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

MYSQL数据库MySQL Antelope和Barracuda的区别分析

发布时间:2020-12-12 02:50:15 所属栏目:MySql教程 来源:网络整理
导读:《MYSQL数据库MySQL Antelope和Barracuda的区别分析》要点: 本文介绍了MYSQL数据库MySQL Antelope和Barracuda的区别分析,希望对您有用。如果有疑问,可以联系我们。 MYSQL数据库 Antelope是innodb-base的文件格局,Barracude是innodb-plugin后引入的文件格
文件格局支持行格局特性 Antelope

MYSQL数据库(Innodb-base)

ROW_FORMAT=COMPACT

MYSQL数据库ROW_FORMAT=REDUNDANT

Compact和redumdant的区别在便是在于首部的存存内容区别.

MYSQL数据库compact的存储格式为首部为一个非NULL的变长字段长度列表

MYSQL数据库redundant的存储格局为首部是一个字段长度偏移列表(每个字段占用的字节长度及其相应的位移).

MYSQL数据库在Antelope中对于变长字段,低于768字节的,不会进行overflow page存储,某些情况下会减少成果集IO.

Barracuda

MYSQL数据库(innodb-plugin)

ROW_FORMAT=DYNAMIC

MYSQL数据库ROW_FORMAT=COMPRESSED

MYSQL数据库?

这两者主要是功能上的区别功能上的. 另外在行里的变长字段和Antelope的区别是只存20个字节,其它的overflow page存储.

MYSQL数据库另外这两都必要开启innodb_file_per_table=1

MYSQL数据库(这个特性对一些优化照样很有用的)

MYSQL数据库备注:

MYSQL数据库这里有一点需要注意,如果要使用压缩,必定需要先使用innodb_file_format =Barracuda格式,不然没作用.

MYSQL数据库下面我们看一下区别:

代码如下:
(testing)root@localhost [(none)]> use wubx;

MYSQL数据库Database changed

MYSQL数据库(testing)root@localhost [wubx]> CREATE TABLE t1

MYSQL数据库->? (c1 INT PRIMARY KEY)

MYSQL数据库->? ROW_FORMAT=COMPRESSED

MYSQL数据库->? KEY_BLOCK_SIZE=8;

MYSQL数据库Query OK,0 rows affected,4 warnings (0.01 sec)


报出来4个warnings查看一下报错:
代码如下:
(testing)root@localhost [wubx]> show warnings;

MYSQL数据库+―――+――+―――――――――――――――――――――――C+

MYSQL数据库| Level?? | Code | Message?????????????????????????????????????????????????????????????? |

MYSQL数据库+―――+――+―――――――――――――――――――――――C+

MYSQL数据库| Warning | 1478 | InnoDB: KEY_BLOCK_SIZE requires innodb_file_format > Antelope.??????? |

MYSQL数据库| Warning | 1478 | InnoDB: ignoring KEY_BLOCK_SIZE=8.??????????????????????????????????? |

MYSQL数据库| Warning | 1478 | InnoDB: ROW_FORMAT=COMPRESSED requires innodb_file_format > Antelope. |

MYSQL数据库| Warning | 1478 | InnoDB: assuming ROW_FORMAT=COMPACT.????????????????????????????????? |

MYSQL数据库+―――+――+―――――――――――――――――――――――C+

MYSQL数据库4 rows in set (0.00 sec)

MYSQL数据库从以上报错可以看出来不支持压缩.但看一下表布局如下:

代码如下:
(testing)root@localhost [wubx]> show create table t1;

MYSQL数据库+――-+―――――――――――――――――――――――――――――――――――――――――――――――C+

MYSQL数据库| Table | Create Table????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? |

MYSQL数据库+――-+―――――――――――――――――――――――――――――――――――――――――――――――C+

MYSQL数据库| t1??? | CREATE TABLE t1 (

MYSQL数据库c1 int(11) NOT NULL,

MYSQL数据库PRIMARY KEY (c1)

MYSQL数据库) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=8 |

MYSQL数据库+――-+―――――――――――――――――――――――――――――――――――――――――――――――C+

MYSQL数据库1 row in set (0.00 sec)

MYSQL数据库这个是比拟坑的地方,所以在使用压缩需要注意.

代码如下:
(testing)root@localhost [wubx]>create table t2 ( c1 int(11) NOT NULL,primary key(c1));

MYSQL数据库(testing)root@localhost [wubx]> insert into t2 select * from t1;

MYSQL数据库Query OK,5417760 rows affected (37.12 sec)

MYSQL数据库Records: 5417760? Duplicates: 0? Warnings: 0

MYSQL数据库创立支持压缩的表:

代码如下:
(testing)root@localhost [wubx]>SET GLOBAL  innodb_file_per_table=1

MYSQL数据库(testing)root@localhost [wubx]>SET GLOBAL innodb_file_format=Barracuda;

MYSQL数据库(testing)root@localhost [wubx]>CREATE TABLE t3

MYSQL数据库(c1 INT PRIMARY KEY)

MYSQL数据库ROW_FORMAT=COMPRESSED

MYSQL数据库KEY_BLOCK_SIZE=8;

MYSQL数据库(testing)root@localhost [wubx]> insert into t3 select * from t1;

MYSQL数据库Query OK,5417760 rows affected (1 min 10.98 sec)

MYSQL数据库Records: 5417760? Duplicates: 0? Warnings: 0

MYSQL数据库看一下表的物理年夜小如下:

代码如下:
-rw-rw―- 1 mysql mysql 8.4K Jul? 5 16:58 t1.frm

MYSQL数据库-rw-rw―- 1 mysql mysql 136M Jul? 5 19:40 t1.ibd

MYSQL数据库-rw-rw―- 1 mysql mysql 8.4K Jul? 5 19:43 t2.frm

MYSQL数据库-rw-rw―- 1 mysql mysql 136M Jul? 5 19:44 t2.ibd

MYSQL数据库-rw-rw―- 1 mysql mysql 8.4K Jul? 5 19:46 t3.frm

MYSQL数据库-rw-rw―- 1 mysql mysql? 96M Jul? 5 19:47 t3.ibd

MYSQL数据库可见t1,t2都没进行紧缩, t3是支持紧缩的.

欢迎参与《MYSQL数据库MySQL Antelope和Barracuda的区别分析》讨论,分享您的想法,编程之家PHP学院为您提供专业教程。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

《MYSQL数据库MySQL Antelope和Barracuda的区别分析》要点:
本文介绍了MYSQL数据库MySQL Antelope和Barracuda的区别分析,希望对您有用。如果有疑问,可以联系我们。

MYSQL数据库Antelope是innodb-base的文件格局,Barracude是innodb-plugin后引入的文件格局,同时Barracude也支持Antelope文件格局.两者区别在于:

    推荐文章
      热点阅读