InnoDB系统表空间定义规则

简介: 1. InnoDB系统表空间定义规则2. 并行复制设置不当可能导致主从数据不一致

1. InnoDB系统表空间定义规则

修改 innodb_data_file_path 选项值可自定义InnoDB系统表空间设置,不过要注意 autoextendmax 属性只能放在最后一个文件,而不能放在前面的文件。

The autoextend and max attributes can be used only for the data file that is specified last.

例如:

# 这样是错的
innodb_data_file_path=ibdata1:12M:autoextend:max:500M;ibdata2:50M:autoextend:max:500M
# 这样是正确的
innodb_data_file_path=ibdata1:50M;ibdata2:50M:autoextend:max:500M

不过,随着undo表空间从系统表空间移出后,导致系统表空间疯狂膨胀的最大因素已不复存在,也就没什么必要定义太大了,一般128MB就足够应付绝大多数场景了。

2. 并行复制设置不当可能导致主从数据不一致

当并行复制设置为 DATABASE (slave_parallel_type = DATABASE)模式时,可能会导致主从数据不一致。

因为可能有跨 DATABASE 的外键约束,但是在从节点并行应用relay log时,会忽略这些约束条件,从而导致主从数据不一致。

因此,并行复制模式一定记得要设置为 LOGICAL_CLOCK。在MySQL 8.0.27前,默认值是 DATABASE,从8.0.27起默认值才改成 LOGICAL_CLOCK。

There must be no cross-database constraints, as such constraints may be violated on the replica.



相关文章
|
存储 关系型数据库 MySQL
第9章 【MySQL】InnoDB的表空间
第9章 【MySQL】InnoDB的表空间
217 0
第9章 【MySQL】InnoDB的表空间
|
存储 人工智能 关系型数据库
10个行锁、死锁案例⭐️24张加锁分析图🚀彻底搞懂Innodb行锁加锁规则!
10个行锁、死锁案例⭐️24张加锁分析图🚀彻底搞懂Innodb行锁加锁规则!
|
8月前
|
存储 Oracle 关系型数据库
【赵渝强老师】MySQL InnoDB的表空间
InnoDB是MySQL默认的存储引擎,主要由存储结构、内存结构和线程结构组成。其存储结构分为逻辑和物理两部分,逻辑存储结构包括表空间、段、区和页。表空间是InnoDB逻辑结构的最高层,所有数据都存放在其中。默认情况下,InnoDB有一个共享表空间ibdata1,用于存放撤销信息、系统事务信息等。启用参数`innodb_file_per_table`后,每张表的数据可以单独存放在一个表空间内,但撤销信息等仍存放在共享表空间中。
129 6
|
存储 关系型数据库 MySQL
MySQL数据库——InnoDB引擎-逻辑存储结构(表空间、段、区、页、行)
MySQL数据库——InnoDB引擎-逻辑存储结构(表空间、段、区、页、行)
332 7
|
存储 关系型数据库 MySQL
认真学习InnoDB的数据存储结构中的区、段与表空间
认真学习InnoDB的数据存储结构中的区、段与表空间
304 2
|
关系型数据库 数据库
Innodb表空间迁移
有cfg文件时表空间迁移 在源表上显示建表语句:
|
存储 关系型数据库 MySQL
一文带你了解MySQL之InnoDB表空间
通过前边的内容,相信大家都知道了表空间是一个抽象的概念,对于系统表空间来说,对应着文件系统中一个或多个实际文件;对于每个独立表空间来说,对应着文件系统中一个名为表名.ibd的实际文件。 大家可以把表空间想象成被切分为许多个页的池子,当我们想为某个表插入一条记录的时候,就从池子中捞出一个对应的页来把数据写进去。 本章内容会深入到表空间的各个细节中,带领大家在InnoDB存储结构的池子中畅游。由于本章中将会涉及比较多的概念,虽然这些概念都不难,但是却相互依赖,所以奉劝大家看的时候:不要跳着看
418 0
|
存储 关系型数据库 MySQL
一文带你了解MySQL之InnoDB表空间
通过前边的内容,相信大家都知道了表空间是一个抽象的概念,对于系统表空间来说,对应着文件系统中一个或多个实际文件;对于每个独立表空间来说,对应着文件系统中一个名为表名.ibd的实际文件。 大家可以把表空间想象成被切分为许多个页的池子,当我们想为某个表插入一条记录的时候,就从池子中捞出一个对应的页来把数据写进去。 本章内容会深入到表空间的各个细节中,带领大家在InnoDB存储结构的池子中畅游。由于本章中将会涉及比较多的概念,虽然这些概念都不难,但是却相互依赖,所以奉劝大家看的时候:不要跳着看
389 0
|
3月前
|
存储 网络协议 关系型数据库
MySQL8.4创建keyring给InnoDB表进行静态数据加密
MySQL8.4创建keyring给InnoDB表进行静态数据加密
101 1
|
5月前
|
存储 SQL 关系型数据库
MySQL底层概述—2.InnoDB磁盘结构
InnoDB磁盘结构主要包括表空间(Tablespaces)、数据字典(Data Dictionary)、双写缓冲区(Double Write Buffer)、重做日志(redo log)和撤销日志(undo log)。其中,表空间分为系统、独立、通用、Undo及临时表空间,分别用于存储不同类型的数据。数据字典从MySQL 8.0起不再依赖.frm文件,转而使用InnoDB引擎存储,支持事务原子性DDL操作。
381 100
MySQL底层概述—2.InnoDB磁盘结构