MySQL 8带来了重大建筑变换代替传统MyISAM-based系统表与交易数据字典(TDD),更有效和可靠的方法。这个升级有很大改善的管理和存储元数据,导致更好的可靠性和可伸缩性为各种数据库对象。在这篇文章中,我们将探索MySQL 8的错综复杂的交易数据字典,它的优势,使用实例及其现实应用程序。
MySQL的核心8 InnoDB存储引擎,事务数据字典(TDD)在储存中起着基础性作用关键元数据数据库对象,如表、索引、约束、触发器、等等。这种创新的架构取代过时的MyISAM-based系统表,有效地使数据字典信息事务的处理和符合酸原则。
事务数据字典的主要目标(TDD)是提高整体性能,稳定性和可伸缩性的MySQL数据库。它达到这样的目标,大大减少争用系统表锁和最小化磁盘I / O,最终导致改善并发性和提高可靠性。
在MySQL 5.7中,MySQL数据库系统是由数据目录的子目录中名为“MySQL”。然而,这种机制取代在MySQL 8.0更高级的事务数据字典(TDD)。现在合并成一个单一的数据字典表InnoDB表名为“mysql.ibd”,居住在MySQL数据目录。“mysql至关重要。ibd的表空间文件仍然在其指定的位置,保留它的名字,因为它不能被修改或使用的任何其他表空间。
字典数据受益于相同的保护提供给用户数据存储在InnoDB表,确保数据完整性通过提交、回滚,崩溃恢复功能。这种集成允许更有凝聚力的管理系统数据,提高数据库的整体可靠性和一致性。
事务数据字典的好处
让我们来探讨MySQL 8事务数据词典的优点:
- 原子事务:执行TDD确保数据库模式改变原子事务。这意味着要么与创建或修改数据库对象相关的所有修改成功或没有人。因此,数据库保持一致,即使操作遇到错误或失败。
- 提高并发性:MyISAM-based系统表的删除,争夺全球锁是显著降低。因此,多个事务的不同部分可以同时访问和修改数据字典,导致更好的整体性能和可伸缩性。
- 崩溃恢复和数据一致性:自从TDD模式变化的事务日志记录,崩溃恢复变得更可靠。在崩溃期间,MySQL可以回放记录的变化,以确保数据一致性不依赖MyISAM修复过程。
关于数据库对象的信息存储在TDD
现在,让我们看看MySQL 8事务数据字典存储各种信息数据库对象使用的例子:
创建一个新表
考虑下面的SQL查询创建一个简单的表:
|
1
2
3
4
5
|
创建
表
员工(
id
INT
主键
AUTO_INCREMENT,
的名字
VARCHAR(50)
非空,
部门
VARCHAR(30)
);
|
TDD纪录表的元数据,包括列的名称、数据类型、约束和索引。这个信息存储在事务性存储,保证原子性的模式变化。
修改表结构
假设我们想要添加一个新列,“工资”,“雇员”表:
|
1
|
改变
表
员工
添加
列
工资
小数(10,2);
|
TDD处理这个变更事务。它存储日志缓冲区中的新列的信息,一旦提交事务,相应地更新数据字典。
索引和约束
MySQL 8 TDD商店信息表上定义的索引和约束。例如:
|
1
|
创建
指数
idx_department
在
员工(部门);
|
这个创建索引记录事务在数据字典中,这样就可以在恢复重建数据库的状态。
数据字典视图
MySQL提供几个数据字典视图允许用户直接查询元数据信息。一些基本数据字典视图包括:
INFORMATION_SCHEMA。表S: Provides details about tables in the database.
INFORMATION_SCHEMA。列S: Contains information about table columns.
INFORMATION_SCHEMA。INNODB_INDEXES:提供InnoDB表的索引信息。
INFORMATION_SCHEMA。表_CONSTRAINTS: Provides information about table constraints.
结论
MySQL 8事务数据字典是一个改变游戏规则的管理数据库对象的元数据。通过引入原子事务和改进并发性,它确保更好的性能和数据一致性。通过这个博客讨论的例子,我们已经了解了TDD有效地存储信息数据库对象和促进崩溃恢复。
采用MySQL 8和利用事务数据字典的好处无疑将导致更健壮和高效的数据库系统,这使得任何MySQL-based应用程序的重要升级。知道更多关于如何缓解主要版本升级,请看看这些博客:
一种更好的方式转移到MySQL 8.0 !我们将帮助你快速跳过劳动密集型升级过程,并运行MySQL 8.0起床。





