# MySQL 词汇表

这些术语通常用于有关 MySQL 数据库服务器的信息。

### 一种

[](<>).ARM 文件

[](<>)元数据`档案`表。对比**.ARZ 文件**.具有此扩展名的文件始终包含在由`mysql备份`的命令**MySQL 企业备份**产品。

也可以看看[.ARZ 文件](glossary.html#glos_arz_file),[MySQL 企业备份](glossary.html#glos_mysql_enterprise_backup),[mysql备份命令](glossary.html#glos_mysqlbackup_command).

[](<>).ARZ 文件

[](<>)ARCHIVE 表的数据。对比**.ARM 文件**.具有此扩展名的文件始终包含在由`mysql备份`的命令**MySQL 企业备份**产品。

也可以看看[.ARM 文件](glossary.html#glos_arm_file),[MySQL 企业备份](glossary.html#glos_mysql_enterprise_backup),[mysql备份命令](glossary.html#glos_mysqlbackup_command).

[](<>)酸

[](<>)代表原子性、一致性、隔离性和持久性的首字母缩写词。这些属性都是数据库系统所需要的，并且都与数据库系统的概念密切相关。**交易**.交易的特点`InnoDB`遵守 ACID 原则。

交易是**原子**可以的工作单元**坚定的**要么**回滚**.当一个事务对数据库进行多次更改时，要么在事务提交时所有更改都成功，要么在事务回滚时撤消所有更改。

数据库始终保持一致状态——在每次提交或回滚之后，以及事务正在进行时。如果跨多个表更新相关数据，查询会看到所有旧值或所有新值，而不是旧值和新值的混合。

交易在进行时相互保护（隔离）；他们不能互相干扰，也不能看到彼此未提交的数据。这种隔离是通过**锁定**机制。有经验的用户可以调整**隔离级别**, 以减少保护换取提高性能和**并发**，当他们可以确定交易真的不会互相干扰时。

事务的结果是持久的：一旦提交操作成功，该事务所做的更改就不会出现电源故障、系统崩溃、竞争条件或许多非数据库应用程序容易受到的其他潜在危险。持久性通常涉及写入磁盘存储，具有一定数量的冗余以防止写入操作期间出现电源故障或软件崩溃。（在`InnoDB`， 这**双写缓冲区**有助于耐久性。）

也可以看看[原子](glossary.html#glos_atomic),[犯罪](glossary.html#glos_commit),[并发](glossary.html#glos_concurrency),[双写缓冲区](glossary.html#glos_doublewrite_buffer),[隔离级别](glossary.html#glos_isolation_level),[锁定](glossary.html#glos_locking),[回滚](glossary.html#glos_rollback),[交易](glossary.html#glos_transaction).

[](<>)自适应冲洗

[](<>)一种算法**InnoDB**消除由引入的 I/O 开销的表**检查站**.代替**冲洗**全部修改**页面**来自**缓冲池**到**数据文件**MySQL 会立即定期刷新一小组修改过的页面。自适应刷新算法通过根据刷新速率和多快估计执行这些周期性刷新的最佳速率来扩展此过程**重做**信息产生。

也可以看看[缓冲池](glossary.html#glos_buffer_pool),[检查点](glossary.html#glos_checkpoint),[数据文件](glossary.html#glos_data_files),[冲洗](glossary.html#glos_flush),[InnoDB](glossary.html#glos_innodb),[页](glossary.html#glos_page),[重做日志](glossary.html#glos_redo_log).

[](<>)自适应哈希索引

[](<>)优化`InnoDB`可以使用以下方法加速查找的表`=`和`在`运算符，通过构造一个**哈希索引**在记忆中。MySQL 监控索引搜索`InnoDB`表，如果查询可以从哈希索引中受益，它会自动为索引构建一个**页面**经常访问的。从某种意义上说，自适应哈希索引在运行时配置 MySQL 以利用充足的主存，更接近主存数据库的架构。此功能由[`innodb_adaptive_hash_index`](innodb-parameters.html#sysvar_innodb_adaptive_hash_index)配置选项。因为这个特性有利于某些工作负载而不是其他工作负载，并且用于哈希索引的内存保留在**缓冲池**，通常您应该在启用和禁用此功能时进行基准测试。

哈希索引始终基于现有的**B树**表上的索引。MySQL 可以在为 B 树定义的任何长度的键的前缀上构建哈希索引，具体取决于针对索引的搜索模式。哈希索引可以是部分的；整个 B 树索引不需要缓存在缓冲池中。

在 MySQL 5.6 及更高版本中，另一种利用快速单值查找的方法`InnoDB`表是使用`InnoDB` **内存缓存**插入。看[第 15.20 节，“InnoDB memcached 插件”](innodb-memcached.html)详情。

也可以看看[B树](glossary.html#glos_b_tree),[缓冲池](glossary.html#glos_buffer_pool),[哈希索引](glossary.html#glos_hash_index),[内存缓存](glossary.html#glos_memcached),[页](glossary.html#glos_page),[二级索引](glossary.html#glos_secondary_index).

[](<>)网络

[](<>)使用 .NET 技术构建的应用程序的对象关系映射 (ORM) 框架，例如**ASP.NET**.此类应用程序可以通过**连接器/网络**零件。

也可以看看[。网](glossary.html#glos__net),[ASP.net](glossary.html#glos_asp_net),[连接器/网络](glossary.html#glos_connector_net),[单核细胞增多症](glossary.html#glos_mono),[视觉工作室](glossary.html#glos_visual_studio).

[](<>)一体机

[](<>)首字母缩略词**异步 I/O**.您可能会在`InnoDB`消息或关键字。

也可以看看[异步 I/O](glossary.html#glos_asynchronous_io).

[](<>)ANSI

[](<>)在**ODBC**，支持字符集和其他国际化方面的替代方法。对比**统一码**.**连接器/ODBC**3.51 是 ANSI 驱动程序，而 Connector/ODBC 5.1 是 Unicode 驱动程序。

也可以看看[连接器/ODBC](glossary.html#glos_connector_odbc),[ODBC](glossary.html#glos_odbc),[统一码](glossary.html#glos_unicode).

[](<>)API

[](<>)API 提供对 MySQL 协议和 MySQL 资源的低级访问**客户**程式。与 a 提供的更高级别的访问权限相比**连接器**.

也可以看看[C API](glossary.html#glos_c_api),[客户](glossary.html#glos_client),[连接器](glossary.html#glos_connector),[本机 C API](glossary.html#glos_native_c_api),[Perl API](glossary.html#glos_perl_api),[PHP API](glossary.html#glos_php_api),[Python API](glossary.html#glos_python_api),[红宝石 API](glossary.html#glos_ruby_api).

[](<>)应用程序编程接口 (API)

[](<>)一组函数或过程。API 为函数、过程、参数和返回值提供了一组稳定的名称和类型。

[](<>)申请

[](<>)当由**MySQL 企业备份**产品不包括备份过程中发生的最新更改，更新备份文件以包含这些更改的过程称为**申请**步。它由`应用日志`的选项`mysql备份`命令。

在应用更改之前，我们将文件称为**原始备份**.应用更改后，我们将文件称为**准备好的备份**.更改记录在**备份\_日志文件**文件;应用步骤完成后，不再需要此文件。

也可以看看[热备份](glossary.html#glos_hot_backup),[备份\_日志文件](glossary.html#glos_ibbackup_logfile),[MySQL 企业备份](glossary.html#glos_mysql_enterprise_backup),[准备好的备份](glossary.html#glos_prepared_backup),[原始备份](glossary.html#glos_raw_backup).

[](<>)作为

[](<>)Kerberos 身份验证服务器。AS也可以指认证服务器提供的认证服务。

也可以看看[认证服务器](glossary.html#glos_authentication_server).

[](<>)ASP.net

[](<>)用于开发基于 Web 的应用程序的框架**。网**技术和语言。此类应用程序可以通过**连接器/网络**零件。

另一种使用 MySQL 编写服务器端网页的技术是**PHP**.

也可以看看[。网](glossary.html#glos__net),[网络](glossary.html#glos_ado_net),[连接器/网络](glossary.html#glos_connector_net),[单核细胞增多症](glossary.html#glos_mono),[PHP](glossary.html#glos_php),[视觉工作室](glossary.html#glos_visual_studio).

[](<>)集会

[](<>)编译代码库**。网**系统，通过**连接器/网络**.存储在**广汽**允许版本控制而不发生命名冲突。

也可以看看[。网](glossary.html#glos__net),[广汽](glossary.html#glos_gac).

[](<>)异步 I/O

[](<>)一种 I/O 操作，允许在 I/O 完成之前进行其他处理。也被称为**非阻塞 I/O**并缩写为**一体机**.`InnoDB`将这种类型的 I/O 用于某些可以并行运行而不影响数据库可靠性的操作，例如将页面读入**缓冲池**实际上并没有被请求，但可能很快就会需要。

从历史上看，`InnoDB`仅在 Windows 系统上使用异步 I/O。从 InnoDB 插件 1.1 和 MySQL 5.5 开始，`InnoDB`在 Linux 系统上使用异步 I/O。此更改引入了对`libaio`.Linux 系统上的异步 I/O 使用[`innodb_use_native_aio`](innodb-parameters.html#sysvar_innodb_use_native_aio)选项，默认启用。在其他类 Unix 系统上，InnoDB 仅使用同步 I/O。

也可以看看[缓冲池](glossary.html#glos_buffer_pool),[非阻塞 I/O](glossary.html#glos_non_blocking_io).

[](<>)原子

[](<>)在 SQL 上下文中，**交易**是要么完全成功的工作单元（当**坚定的**）或根本没有效果（当**回滚**）。事务的不可分割（“原子”）属性是首字母缩略词中的“A”**酸**.

也可以看看[酸](glossary.html#glos_acid),[犯罪](glossary.html#glos_commit),[回滚](glossary.html#glos_rollback),[交易](glossary.html#glos_transaction).

[](<>)原子 DDL

[](<>)一个原子*DDL*声明是一种结合*数据字典*更新，*存储引擎*操作，和*二进制日志*将与 DDL 操作关联的写入单个原子事务。事务要么完全提交，要么回滚，即使服务器在操作期间停止。MySQL 8.0 中添加了原子 DDL 支持。有关详细信息，请参阅[第 13.1.1 节，“原子数据定义语句支持”](atomic-ddl.html).

也可以看看[二进制日志](glossary.html#glos_binary_log),[数据字典](glossary.html#glos_data_dictionary),[DDL](glossary.html#glos_ddl),[存储引擎](glossary.html#glos_storage_engine).

[](<>)原子指令

[](<>)CPU 提供的特殊指令，确保关键的低级操作不会被中断。

[](<>)认证服务器

[](<>)在 Kerberos 中，一种提供初始票证的服务，该票证需要获得票证授予票证 (TGT)，而该票证是从票证授予服务器 (TGS) 获取其他票证所需的。认证服务器 (AS) 与 TGS 结合构成​​密钥分发中心 (KDC)。

也可以看看[关键配送中心](glossary.html#glos_key_distribution_center),[票证授予服务器](glossary.html#glos_ticket_granting_server).

[](<>)自动递增

[](<>)表列的属性（由`自动递增`关键字），它会自动在列中添加升序的值序列。

它为开发人员节省了工作，在插入新行时不必产生新的唯一值。它为查询优化器提供了有用的信息，因为已知该列不为空且具有唯一值。此类列中的值可以用作各种上下文中的查找键，并且由于它们是自动生成的，因此没有理由更改它们；出于这个原因，主键列通常被指定为自动递增。

对于基于语句的复制，自动增量列可能会出现问题，因为由于计时问题，在副本上重放语句可能不会产生与源上相同的列值集。当您有一个自动递增的主键时，您只能使用基于语句的复制设置[`innodb_autoinc_lock_mode=1`](innodb-parameters.html#sysvar_innodb_autoinc_lock_mode).如果你有[`innodb_autoinc_lock_mode=2`](innodb-parameters.html#sysvar_innodb_autoinc_lock_mode)，它允许插入操作的并发性更高，使用**基于行的复制**而不是**基于语句的复制**.那个设定[`innodb_autoinc_lock_mode=0`](innodb-parameters.html#sysvar_innodb_autoinc_lock_mode)除非出于兼容性目的，否则不应使用。

连续锁定模式（[`innodb_autoinc_lock_mode=1`](innodb-parameters.html#sysvar_innodb_autoinc_lock_mode)) 是 MySQL 8.0.3 之前的默认设置。从 MySQL 8.0.3 开始，交错锁模式 ([`innodb_autoinc_lock_mode=2`](innodb-parameters.html#sysvar_innodb_autoinc_lock_mode)) 是默认值，它反映了从基于语句的复制到基于行的复制作为默认复制类型的变化。

也可以看看[自增锁定](glossary.html#glos_auto_increment_locking),[innodb\_自动公司\_锁\_模式](glossary.html#glos_innodb_autoinc_lock_mode),[首要的关键](glossary.html#glos_primary_key),[基于行的复制](glossary.html#glos_row_based_replication),[基于语句的复制](glossary.html#glos_statement_based_replication).

[](<>)自增锁定

[](<>)的便利性**自动递增**主键涉及与并发的一些权衡。在最简单的情况下，如果一个事务正在向表中插入值，则任何其他事务都必须等待在该表中执行自己的插入操作，以便第一个事务插入的行接收连续的主键值。`InnoDB`包括优化和[`innodb_autoinc_lock_mode`](innodb-parameters.html#sysvar_innodb_autoinc_lock_mode)选项，以便您可以在可预测的自动增量值序列和最大值之间配置和优化平衡**并发**用于插入操作。

也可以看看[自动递增](glossary.html#glos_auto_increment),[并发](glossary.html#glos_concurrency),[innodb\_自动公司\_锁\_模式](glossary.html#glos_innodb_autoinc_lock_mode).

[](<>)自动提交

[](<>)导致**犯罪**每次操作后**SQL**陈述。不建议使用此模式`InnoDB`表**交易**跨越多个语句。它可以帮助性能**只读事务**在`InnoDB`表，它可以最大限度地减少开销**锁定**和一代**撤消**数据，尤其是在 MySQL 5.6.4 及更高版本中。它也适合与[`MyISAM`](myisam-storage-engine.html)表，其中事务不适用。

也可以看看[犯罪](glossary.html#glos_commit),[锁定](glossary.html#glos_locking),[只读事务](glossary.html#glos_read_only_transaction),[SQL](glossary.html#glos_sql),[交易](glossary.html#glos_transaction),[撤消](glossary.html#glos_undo).

[](<>)可用性

[](<>)应对主机故障并在必要时恢复的能力，包括 MySQL、操作系统或可能导致停机的硬件和维护活动的故障。经常搭配**可扩展性**作为大规模部署的关键方面。

也可以看看[可扩展性](glossary.html#glos_scalability).

### 乙

[](<>)B树

[](<>)一种在数据库索引中流行的树数据结构。该结构始终保持排序，从而可以快速查找精确匹配（等于运算符）和范围（例如，大于、小于和`之间`运营商）。这种类型的索引适用于大多数存储引擎，例如[`InnoDB`](innodb-storage-engine.html)和[`MyISAM`](myisam-storage-engine.html).

因为 B-tree 节点可以有很多子节点，所以 B-tree 与二叉树不同，二叉树每个节点限制为 2 个子节点。

对比**哈希索引**, 这仅在[`记忆`](memory-storage-engine.html)存储引擎。这`记忆`存储引擎也可以使用 B-tree 索引，您应该选择 B-tree 索引`记忆`如果某些查询使用范围运算符，则表。

术语 B-tree 的使用旨在作为索引设计的一般类别的参考。由于经典 B 树设计中不存在的复杂性，MySQL 存储引擎使用的 B 树结构可能被视为变体。有关相关信息，请参阅`InnoDB`页面结构[文件头](https://dev.mysql.com/doc/internals/en/innodb-fil-header.html)的部分[MySQL 内部手册](https://dev.mysql.com/doc/internals/en/index.html).

也可以看看[哈希索引](glossary.html#glos_hash_index).

[](<>)反引号

[](<>)MySQL SQL 语句中的标识符必须使用反引号字符（\``) 如果它们包含特殊字符或保留字。例如，要引用名为“FOO#BAR”的表或名为“SELECT”的列，您可以将标识符指定为`美食#酒吧`和`选择``.由于反引号提供了额外的安全级别，因此它们广泛用于程序生成的 SQL 语句中，其中标识符名称可能事先不知道。

许多其他数据库系统使用双引号 (`"`) 围绕这些特殊名称。为了便携性，您可以启用`ANSI_QUOTES`在 MySQL 中使用双引号而不是反引号来限定标识符名称。

也可以看看[SQL](glossary.html#glos_sql).

[](<>)备份

[](<>)从 MySQL 实例复制部分或全部表数据和元数据以进行安全保存的过程。也可以参考复制文件的集合。这对 DBA 来说是一项至关重要的任务。这个过程的逆过程是**恢复**手术。

使用 MySQL，**物理备份**由执行**MySQL 企业备份**产品，以及**逻辑备份**由执行`mysql转储`命令。这些技术在备份数据的大小和表示以及速度（尤其是恢复操作的速度）方面具有不同的特征。

备份进一步分类为**热的**,**温暖的**， 要么**寒冷的**取决于它们对正常数据库操作的干扰程度。（热备份干扰最小，冷备份干扰最大。）

也可以看看[冷备份](glossary.html#glos_cold_backup),[热备份](glossary.html#glos_hot_backup),[逻辑备份](glossary.html#glos_logical_backup),[MySQL 企业备份](glossary.html#glos_mysql_enterprise_backup),[mysql转储](glossary.html#glos_mysqldump),[物理备份](glossary.html#glos_physical_backup),[热备份](glossary.html#glos_warm_backup).

[](<>)基柱

[](<>)存储的生成列或虚拟生成列所基于的非生成表列。换句话说，基列是非生成的表列，它是生成列定义的一部分。

也可以看看[生成的列](glossary.html#glos_generated_column),[存储生成的列](glossary.html#glos_stored_generated_column),[虚拟生成列](glossary.html#glos_virtual_generated_column).

[](<>)测试版

[](<>)软件产品生命周期的早期阶段，仅可用于评估，通常没有明确的版本号或小于 1 的版本号。`InnoDB`不使用 beta 名称，更喜欢**早期采用者**阶段可以扩展到多个点发布，从而导致**遗传算法**发布。

也可以看看[早期采用者](glossary.html#glos_early_adopter),[遗传算法](glossary.html#glos_ga).

[](<>)二进制日志

[](<>)包含尝试更改表数据的所有语句或行更改的记录的文件。可以重放二进制日志的内容，以使副本在一个**复制**方案，或在从备份恢复表数据后使数据库保持最新状态。二进制日志功能可以打开和关闭，尽管 Oracle 建议您在使用复制或执行备份时始终启用它。

您可以检查二进制日志的内容，或者在复制或恢复期间重放它，使用[**mysqlbinlog**](mysqlbinlog.html)命令。有关二进制日志的完整信息，请参阅[第 5.4.4 节，“二进制日志”](binary-log.html).有关二进制日志相关的 MySQL 配置选项，请参见[第 17.1.6.4 节，“二进制日志记录选项和变量”](replication-options-binary-log.html).

为了**MySQL 企业备份**产品、二进制日志的文件名和文件中的当前位置是重要的细节。要在复制上下文中进行备份时记录源的此信息，您可以指定`--奴隶信息`选项。

在 MySQL 5.0 之前，可以使用类似的功能，称为更新日志。在 MySQL 5.0 及更高版本中，二进制日志取代了更新日志。

也可以看看[二进制日志](glossary.html#glos_binlog),[MySQL 企业备份](glossary.html#glos_mysql_enterprise_backup),[复制](glossary.html#glos_replication).

[](<>)二进制日志

[](<>)的非正式名称**二进制日志**文件。例如，您可能会在电子邮件消息或论坛讨论中看到此缩写。

也可以看看[二进制日志](glossary.html#glos_binary_log).

[](<>)盲查询扩展

[](<>)一种特殊的模式**全文检索**由启用`使用查询扩展`条款。它执行两次搜索，其中第二次搜索的搜索短语是原始搜索短语与第一次搜索中最相关的少数文档相连接。这种技术主要适用于短搜索词组，可能只有一个词。它可以发现文档中未出现精确搜索词的相关匹配项。

也可以看看[全文检索](glossary.html#glos_full_text_search).

[](<>)斑点

[](<>)SQL 数据类型 ([`小斑点`](blob.html),[`斑点`](blob.html),[`中块`](blob.html)， 和[`长块`](blob.html)) 用于包含任意大小的任何类型的二进制数据的对象。用于存储文档、图像、声音文件和其他不能轻易分解为 MySQL 表中的行和列的信息。在 MySQL 应用程序中处理 BLOB 的技术因每个应用程序而异**连接器**和**API**.MySQL`连接器/ODBC`定义`斑点`值作为`LONGVARBINARY`.对于大型、自由形式的字符数据集合，行业术语是**CLOB**，以 MySQL 为代表`文本`数据类型。

也可以看看[API](glossary.html#glos_api),[CLOB](glossary.html#glos_clob),[连接器](glossary.html#glos_connector),[连接器/ODBC](glossary.html#glos_connector_odbc).

[](<>)瓶颈

[](<>)系统的一部分，在大小或容量上受到限制，具有限制整体吞吐量的效果。例如，内存区域可能比需要的小；访问单个所需资源可能会阻止多个 CPU 内核同时运行；或等待磁盘 I/O 完成可能会阻止 CPU 满负荷运行。消除瓶颈趋于改善**并发**.例如，拥有多个`InnoDB` **缓冲池**当多个会话同时读取和写入缓冲池时，实例减少了争用。

也可以看看[缓冲池](glossary.html#glos_buffer_pool),[并发](glossary.html#glos_concurrency).

[](<>)弹跳

[](<>)一种**关掉**操作后立即重新启动。理想情况下，相对较短**暖身**期使性能和吞吐量迅速恢复到高水平。

也可以看看[关掉](glossary.html#glos_shutdown).

[](<>)伙伴分配器

[](<>)不同规模的管理机制**页面**在 InnoDB 中**缓冲池**.

也可以看看[缓冲池](glossary.html#glos_buffer_pool),[页](glossary.html#glos_page),[页面大小](glossary.html#glos_page_size).

[](<>)缓冲

[](<>)用于临时存储的内存或磁盘区域。数据缓冲在内存中，以便可以通过少量大型 I/O 操作而不是许多小型 I/O 操作有效地将其写入磁盘。数据缓冲在磁盘上以获得更高的可靠性，因此即使在**碰撞**或其他故障发生在最坏的时间。InnoDB 使用的主要缓冲区类型是**缓冲池**， 这**双写缓冲区**, 和**更改缓冲区**.

也可以看看[缓冲池](glossary.html#glos_buffer_pool),[更改缓冲区](glossary.html#glos_change_buffer),[碰撞](glossary.html#glos_crash),[双写缓冲区](glossary.html#glos_doublewrite_buffer).

[](<>)缓冲池

[](<>)保存缓存的内存区域`InnoDB`表和索引的数据。为了大容量读取操作的效率，缓冲池被划分为**页面**可能包含多行。为了缓存管理的效率，缓冲池被实现为页链表；很少使用的数据在缓存中老化，使用的变体**LRU**算法。在具有大内存的系统上，您可以通过将缓冲池划分为多个来提高并发性**缓冲池实例**.

一些`InnoDB`状态变量，`INFORMATION_SCHEMA`表，和`性能模式`表有助于监控缓冲池的内部工作。从 MySQL 5.6 开始，您可以通过在服务器关闭时保存缓冲池状态并在服务器启动时将缓冲池恢复到相同状态来避免重新启动服务器后的长时间预热，特别是对于具有大型缓冲池的实例。看[第 15.8.3.6 节，“保存和恢复缓冲池状态”](innodb-preload-buffer-pool.html).

也可以看看[缓冲池实例](glossary.html#glos_buffer_pool_instance),[LRU](glossary.html#glos_lru),[页](glossary.html#glos_page),[暖身](glossary.html#glos_warm_up).

[](<>)缓冲池实例

[](<>)多个区域中的任何一个**缓冲池**可以划分，由控制[`innodb_buffer_pool_instances`](innodb-parameters.html#sysvar_innodb_buffer_pool_instances)配置选项。由指定的总内存大小[`innodb_buffer_pool_size`](innodb-parameters.html#sysvar_innodb_buffer_pool_size)在所有缓冲池实例中划分。通常，具有多个缓冲池实例适用于将多个 GB 分配给`InnoDB`缓冲池，每个实例为 1 GB 或更大。在系统从许多并发会话加载或查找缓冲池中的大量数据时，拥有多个缓冲池实例可以减少对管理缓冲池的数据结构的独占访问的争用。

也可以看看[缓冲池](glossary.html#glos_buffer_pool).

[](<>)内置

[](<>)内置的`InnoDB`MySQL内部的存储引擎是存储引擎的原始分发形式。对比**InnoDB 插件**.从 MySQL 5.5 开始，InnoDB Plugin 被合并回 MySQL 代码库作为内置`InnoDB`存储引擎（称为 InnoDB 1.1）。

这种区别主要在 MySQL 5.1 中很重要，其中功能或错误修复可能适用于 InnoDB 插件，但不适用于内置`InnoDB`， 或相反亦然。

也可以看看[InnoDB](glossary.html#glos_innodb).

[](<>)商业规则

[](<>)构成商业软件基础的关系和动作序列，用于运营商业公司。有时这些规则是由法律规定的，有时是由公司政策规定的。仔细规划可确保由数据库编码和执行的关系以及通过应用程序逻辑执行的操作准确反映公司的实际政策并能够处理实际情况。

例如，员工离开公司可能会触发人力资源部门的一系列行动。人力资源数据库可能还需要灵活地表示有关已被雇用但尚未开始工作的人员的数据。关闭在线服务的帐户可能会导致数据从数据库中删除，或者数据可能会被移动或标记，以便在重新打开帐户时可以恢复。除了基本的健全性检查（例如工资不是负数）之外，公司可能会制定有关工资最高、最低和调整的政策。零售数据库可能不允许多次退回具有相同序列号的购买，或者可能不允许超过一定价值的信用卡购买，而用于检测欺诈的数据库可能允许此类事情。

也可以看看[关系](glossary.html#glos_relational).

### C

[](<>).cfg 文件

[](<>)与`InnoDB` **可传输表空间**特征。它是由命令产生的`冲洗表...用于出口`, 将一个或多个表置于可以复制到另一台服务器的一致状态。这`.cfg`文件与相应的文件一起复制**.ibd 文件**，并用于调整的内部值`.ibd`文件，例如**空间标识**， 在此期间`ALTER TABLE ... 导入表空间`步。

也可以看看[.ibd 文件](glossary.html#glos_ibd_file),[空间标识](glossary.html#glos_space_id),[可传输表空间](glossary.html#glos_transportable_tablespace).

[](<>)C

[](<>)一种将可移植性与性能和对低级硬件功能的访问相结合的编程语言，使其成为编写操作系统、驱动程序和其他类型系统软件的流行选择。许多复杂的应用程序、语言和可重用模块的特点是用 C 编写的，与用其他语言编写的高级组件联系在一起。它的核心语法是熟悉的**C++**,**爪哇**， 和**C＃**开发商。

也可以看看[C API](glossary.html#glos_c_api),[C++](glossary.html#glos_cplusplus),[C＃](glossary.html#glos_csharp),[爪哇](glossary.html#glos_java).

[](<>)C API

[](<>)C**API**代码与 MySQL 一起分发。它包含在**libmysql客户端**库并启用**C**访问数据库的程序。

也可以看看[API](glossary.html#glos_api),[C](glossary.html#glos_c),[libmysql客户端](glossary.html#glos_libmysqlclient).

[](<>)C＃

[](<>)一种结合了强类型和面向对象特性的编程语言，在微软内部运行**。网**框架或其开源对应物**单核细胞增多症**.通常用于创建应用程序**ASP.net**框架。它的语法是熟悉的**C**,**C++**和**爪哇**开发商。

也可以看看[。网](glossary.html#glos__net),[ASP.net](glossary.html#glos_asp_net),[C](glossary.html#glos_c),[连接器/网络](glossary.html#glos_connector_net),[C++](glossary.html#glos_cplusplus),[爪哇](glossary.html#glos_java),[单核细胞增多症](glossary.html#glos_mono).

[](<>)C++

[](<>)具有熟悉的核心语法的编程语言**C**开发商。提供对低级操作的访问以提高性能，并结合高级数据类型、面向对象的功能和垃圾收集。要为 MySQL 编写 C++ 应用程序，您可以使用**连接器/C++**零件。

也可以看看[C](glossary.html#glos_c),[连接器/C++](glossary.html#glos_connector_c__).

[](<>)缓存

[](<>)存储用于频繁或高速检索的数据副本的任何内存区域的通用术语。在`InnoDB`，主要的缓存结构是**缓冲池**.

也可以看看[缓冲](glossary.html#glos_buffer),[缓冲池](glossary.html#glos_buffer_pool).

[](<>)基数

[](<>)表中不同值的数量**柱子**.当查询引用具有关联的列时**指数**，每列的基数影响哪种访问方法最有效。例如，对于具有**唯一约束**，不同值的数量等于表中的行数。如果一个表有一百万行，但特定列只有 10 个不同的值，则每个值（平均）出现 100,000 次。查询如`从 t1 中选择 c1，其中 c1 = 50；`因此可能会返回 1 行或大量行，并且数据库服务器可能会根据`c1`.

如果列中的值分布非常不均匀，则基数可能不是确定最佳查询计划的好方法。例如，`从 t1 中选择 c1，其中 c1 = x；`可能会返回 1 行时`x=50`一百万行`x=30`.在这种情况下，您可能需要使用**索引提示**传递有关哪种查找方法对特定查询更有效的建议。

基数也可以应用于多列中存在的不同值的数量，如**综合指数**.

也可以看看[柱子](glossary.html#glos_column),[综合指数](glossary.html#glos_composite_index),[指数](glossary.html#glos_index),[索引提示](glossary.html#glos_index_hint),[持续统计](glossary.html#glos_persistent_statistics),[随机潜水](glossary.html#glos_random_dive),[选择性](glossary.html#glos_selectivity),[唯一约束](glossary.html#glos_unique_constraint).

[](<>)更改缓冲区

[](<>)一种记录变化的特殊数据结构**页面**在**二级索引**.这些值可能来自 SQL[`插入`](insert.html),[`更新`](update.html)， 要么[`删除`](delete.html)陈述（**DML**）。涉及更改缓冲区的一组特征统称为**变化缓冲**， 包含由...组成**插入缓冲**,**删除缓冲**， 和**吹扫缓冲**.

仅当二级索引中的相关页面不在**缓冲池**.当相关的索引页被带入缓冲池而相关的更改仍在更改缓冲区中时，该页的更改将应用​​到缓冲池中（**合并**) 使用更改缓冲区中的数据。定期地，**清除**在系统大部分空闲或缓慢关闭期间运行的操作将新的索引页写入磁盘。与将每个值立即写入磁盘相比，清除操作可以更有效地为一系列索引值写入磁盘块。

物理上，更改缓冲区是**系统表空间**，以便索引更改在数据库重新启动时保持缓冲。更改仅适用 (**合并**) 当页面由于某些其他读取操作而被带入缓冲池时。

存储在更改缓冲区中的数据的种类和数量由[`innodb_change_buffering`](innodb-parameters.html#sysvar_innodb_change_buffering)和[`innodb_change_buffer_max_size`](innodb-parameters.html#sysvar_innodb_change_buffer_max_size)配置选项。要查看有关更改缓冲区中当前数据的信息，请发出[`显示引擎 INNODB 状态`](show-engine.html)命令。

以前称为**插入缓冲区**.

也可以看看[缓冲池](glossary.html#glos_buffer_pool),[变化缓冲](glossary.html#glos_change_buffering),[删除缓冲](glossary.html#glos_delete_buffering),[DML](glossary.html#glos_dml),[插入缓冲区](glossary.html#glos_insert_buffer),[插入缓冲](glossary.html#glos_insert_buffering),[合并](glossary.html#glos_merge),[页](glossary.html#glos_page),[清除](glossary.html#glos_purge),[吹扫缓冲](glossary.html#glos_purge_buffering),[二级索引](glossary.html#glos_secondary_index),[系统表空间](glossary.html#glos_system_tablespace).

[](<>)变化缓冲

[](<>)涉及的特征的总称**更改缓冲区**， 包含由...组成**插入缓冲**,**删除缓冲**， 和**吹扫缓冲**.由 SQL 语句引起的索引更改（通常可能涉及随机 I/O 操作）被后台阻止并定期执行**线**.与将每个值立即写入磁盘相比，此操作序列可以更有效地为一系列索引值写入磁盘块。由控制[`innodb_change_buffering`](innodb-parameters.html#sysvar_innodb_change_buffering)和[`innodb_change_buffer_max_size`](innodb-parameters.html#sysvar_innodb_change_buffer_max_size)配置选项。

也可以看看[更改缓冲区](glossary.html#glos_change_buffer),[删除缓冲](glossary.html#glos_delete_buffering),[插入缓冲](glossary.html#glos_insert_buffering),[吹扫缓冲](glossary.html#glos_purge_buffering).

[](<>)检查点

[](<>)随着对缓存在**缓冲池**，这些更改被写入**数据文件**一段时间后，一个称为**冲洗**.检查点是最新更改的记录（由**LSN**值）已成功写入数据文件。

也可以看看[缓冲池](glossary.html#glos_buffer_pool),[数据文件](glossary.html#glos_data_files),[冲洗](glossary.html#glos_flush),[模糊检查点](glossary.html#glos_fuzzy_checkpointing),[LSN](glossary.html#glos_lsn).

[](<>)校验和

[](<>)在`InnoDB`, 一种验证机制来检测损坏时**页**在一个**表空间**从磁盘读入`InnoDB` **缓冲池**.此功能由[`innodb_checksums`](https://dev.mysql.com/doc/refman/5.7/en/innodb-parameters.html#sysvar_innodb_checksums)MySQL 5.5 中的配置选项。[`innodb_checksums`](https://dev.mysql.com/doc/refman/5.7/en/innodb-parameters.html#sysvar_innodb_checksums)在 MySQL 5.6.3 中已弃用，替换为[`innodb_checksum_algorithm`](innodb-parameters.html#sysvar_innodb_checksum_algorithm).

这[**无校验和**](innochecksum.html)命令通过测试指定的校验和值来帮助诊断损坏问题**表空间**MySQL 服务器关闭时的文件。

MySQL 还使用校验和进行复制。有关详细信息，请参阅配置选项[`binlog_checksum`](replication-options-binary-log.html#sysvar_binlog_checksum),[`source_verify_checksum`](replication-options-binary-log.html#sysvar_source_verify_checksum)要么[`master_verify_checksum`](replication-options-binary-log.html#sysvar_master_verify_checksum)， 和[`replica_sql_verify_checksum`](replication-options-replica.html#sysvar_replica_sql_verify_checksum)要么[`slave_sql_verify_checksum`](replication-options-replica.html#sysvar_slave_sql_verify_checksum).

也可以看看[缓冲池](glossary.html#glos_buffer_pool),[页](glossary.html#glos_page),[表空间](glossary.html#glos_tablespace).

[](<>)子表

[](<>)在一个**外键**关系中，子表是其行引用（或指向）另一个表中的行的表，该表的特定列具有相同的值。这是包含`外键...参考`子句和可选`在更新`和`删除时`条款。中对应的行**父表**在子表中创建行之前必须存在。子表中的值可以阻止对父表的删除或更新操作，也可以导致子表的自动删除或更新，基于`级联`创建外键时使用的选项。

也可以看看[外键](glossary.html#glos_foreign_key),[父表](glossary.html#glos_parent_table).

[](<>)干净的页面

[](<>)一种**页**在里面`InnoDB` **缓冲池**在内存中所做的所有更改也已写入（**酡**) 到[数据文件](glossary.html#glos_data_files).一个相反的**脏页**.

也可以看看[缓冲池](glossary.html#glos_buffer_pool),[数据文件](glossary.html#glos_data_files),[脏页](glossary.html#glos_dirty_page),[冲洗](glossary.html#glos_flush),[页](glossary.html#glos_page).

[](<>)干净关机

[](<>)一种**关掉**完成没有错误并将所有更改应用于`InnoDB`完成前的表，而不是**碰撞**或一个**快速关机**.同义词**缓慢关机**.

也可以看看[碰撞](glossary.html#glos_crash),[快速关机](glossary.html#glos_fast_shutdown),[关掉](glossary.html#glos_shutdown),[缓慢关机](glossary.html#glos_slow_shutdown).

[](<>)客户

[](<>)在数据库服务器外部运行的程序，通过发送请求与数据库进行通信**连接器**, 或**API**通过提供**客户端库**.它可以在与数据库服务器相同的物理机器上运行，也可以在通过网络连接的远程机器上运行。它可以是专用数据库应用程序，也可以是通用程序，如[**mysql**](mysql.html)命令行处理器。

也可以看看[API](glossary.html#glos_api),[客户端库](glossary.html#glos_client_libraries),[连接器](glossary.html#glos_connector),[mysql](glossary.html#glos_mysql),[服务器](glossary.html#glos_server).

[](<>)客户端库

[](<>)包含用于处理数据库的函数集合的文件。通过使用这些库编译程序，或将它们安装在与应用程序相同的系统上，您可以运行数据库应用程序（称为**客户**) 在没有安装 MySQL 服务器的机器上；应用程序通过网络访问数据库。使用 MySQL，您可以使用**libmysql客户端**MySQL 服务器本身的库。

也可以看看[客户](glossary.html#glos_client),[libmysql客户端](glossary.html#glos_libmysqlclient).

[](<>)客户端准备好的语句

[](<>)一种**准备好的陈述**在本地管理缓存和重用，模拟**服务器端准备好的语句**.从历史上看，被一些人使用**连接器/J**,**连接器/ODBC**， 和**连接器/PHP**开发人员解决服务器端存储过程的问题。对于现代 MySQL 服务器版本，建议使用服务器端准备好的语句来提高性能、可伸缩性和内存效率。

也可以看看[连接器/J](glossary.html#glos_connector_j),[连接器/ODBC](glossary.html#glos_connector_odbc),[连接器/PHP](glossary.html#glos_connector_php),[准备好的陈述](glossary.html#glos_prepared_statement).

[](<>)CLOB

[](<>)SQL 数据类型 ([`小文本`](blob.html),[`文本`](blob.html),[`中文本`](blob.html)， 要么[`长文`](blob.html)) 用于包含任意大小的任意字符数据的对象。用于存储基于文本的文档，具有关联的字符集和排序规则。在 MySQL 应用程序中处理 CLOB 的技术因每个应用程序而异**连接器**和**API**.MySQL 连接器/ODBC 定义`文本`值作为`LONGVARCHAR`.对于存储二进制数据，等价于**斑点**类型。

也可以看看[API](glossary.html#glos_api),[斑点](glossary.html#glos_blob),[连接器](glossary.html#glos_connector),[连接器/ODBC](glossary.html#glos_connector_odbc).

[](<>)聚集索引

[](<>)这`InnoDB`一个术语**首要的关键**指数。`InnoDB`表存储是根据主键列的值组织的，以加快涉及主键列的查询和排序。为了获得最佳性能，请根据对性能最关键的查询仔细选择主键列。因为修改聚集索引的列是一项昂贵的操作，所以选择很少或从不更新的主列。

在 Oracle 数据库产品中，这种类型的表称为**索引组织表**.

也可以看看[指数](glossary.html#glos_index),[首要的关键](glossary.html#glos_primary_key),[二级索引](glossary.html#glos_secondary_index).

[](<>)冷备份

[](<>)一种**备份**在数据库关闭时拍摄。对于繁忙的应用程序和网站，这可能不实用，您可能更喜欢**热备份**或一个**热备份**.

也可以看看[备份](glossary.html#glos_backup),[热备份](glossary.html#glos_hot_backup),[热备份](glossary.html#glos_warm_backup).

[](<>)柱子

[](<>)一个数据项**排**，其存储和语义由数据类型定义。每个**桌子**和**指数**主要由它包含的列集定义。

每列都有一个**基数**价值。一列可以是**首要的关键**为其表或主键的一部分。列可以受制于**唯一约束**， 一种**NOT NULL 约束**， 或两者。不同列中的值，甚至是跨不同表的值，都可以通过**外键**关系。

在讨论 MySQL 内部操作时，有时**场地**用作同义词。

也可以看看[基数](glossary.html#glos_cardinality),[外键](glossary.html#glos_foreign_key),[指数](glossary.html#glos_index),[NOT NULL 约束](glossary.html#glos_not_null_constraint),[首要的关键](glossary.html#glos_primary_key),[排](glossary.html#glos_row),[桌子](glossary.html#glos_table),[唯一约束](glossary.html#glos_unique_constraint).

[](<>)列索引

[](<>)一个**指数**在单个列上。

也可以看看[综合指数](glossary.html#glos_composite_index),[指数](glossary.html#glos_index).

[](<>)列前缀

[](<>)当一个**指数**使用长度规范创建，例如`在 t1 (c1(N)) 上创建索引 idx`，只有列值的前 N ​​个字符存储在索引中。保持索引前缀较小可以使索引更紧凑，而内存和磁盘 I/O 的节省有助于提高性能。（尽管使索引前缀太小会阻碍查询优化，因为会使具有不同值的行在查询优化器看来是重复的。）

对于包含二进制值或长文本字符串的列，排序不是主要考虑因素并且将整个值存储在索引中会浪费空间，索引会自动使用值的前 N（通常为 768）个字符进行查找和排序。

也可以看看[指数](glossary.html#glos_index).

[](<>)命令拦截器

[](<>)同义词**语句拦截器**.一方面**拦截器**两者都可用的设计模式**连接器/网络**和**连接器/J**.Connector/NET 称之为命令，Connector/J 将其称为语句。对比**异常拦截器**.

也可以看看[连接器/J](glossary.html#glos_connector_j),[连接器/网络](glossary.html#glos_connector_net),[异常拦截器](glossary.html#glos_exception_interceptor),[拦截器](glossary.html#glos_interceptor),[语句拦截器](glossary.html#glos_statement_interceptor).

[](<>)犯罪

[](<>)一种**SQL**结束的语句**交易**，使交易所做的任何更改永久化。它是相反的**回滚**，这将撤消在事务中所做的任何更改。

`InnoDB`使用一个**乐观的**提交机制，以便在提交实际发生之前将更改写入数据文件。这种技术使提交本身更快，但在回滚的情况下需要更多的工作。

默认情况下，MySQL 使用**自动提交**设置，它会在每个 SQL 语句之后自动发出一个提交。

也可以看看[自动提交](glossary.html#glos_autocommit),[乐观的](glossary.html#glos_optimistic),[回滚](glossary.html#glos_rollback),[SQL](glossary.html#glos_sql),[交易](glossary.html#glos_transaction).

[](<>)紧凑的行格式

[](<>)一种**行格式**对于 InnoDB 表。这是从 MySQL 5.0.3 到 MySQL 5.7.8 的默认行格式。在 MySQL 8.0 中，默认行格式由[`innodb_default_row_format`](innodb-parameters.html#sysvar_innodb_default_row_format)配置选项，默认设置为**动态的**.这**袖珍的**行格式为空值和可变长度列提供了比**多余的**行格式。

有关更多信息`InnoDB` `袖珍的`行格式，见[第 15.10 节，“InnoDB 行格式”](innodb-row-format.html).

也可以看看[动态行格式](glossary.html#glos_dynamic_row_format), [文件格式](glossary.html#glos_file_format), [冗余行格式](glossary.html#glos_redundant_row_format), [行格式](glossary.html#glos_row_format).

[](<>)综合指数

[](<>)一个**指数**包括多列。

也可以看看[指数](glossary.html#glos_index).

[](<>)压缩备份

[](<>)的压缩特性**MySQL 企业备份**product 制作每个表空间的压缩副本，将扩展名从`.ibd`到`.ibz`.压缩备份数据可让您保留更多备份，并减少将备份传输到不同服务器的时间。数据在还原操作期间未压缩。当压缩备份操作处理已压缩的表时，它会跳过该表的压缩步骤，因为再次压缩将导致很少或根本没有空间节省。

一组文件由**MySQL 企业备份**产品，其中每个**表空间**被压缩。压缩文件用 a 重命名`.ibz`文件扩展名。

申请**压缩**在备份过程开始时有助于避免压缩过程中的存储开销，并避免将备份文件传输到另一台服务器时的网络开销。的过程**申请**这**二进制日志**需要更长的时间，并且需要解压缩备份文件。

也可以看看[申请](glossary.html#glos_apply),[二进制日志](glossary.html#glos_binary_log),[压缩](glossary.html#glos_compression),[热备份](glossary.html#glos_hot_backup),[MySQL 企业备份](glossary.html#glos_mysql_enterprise_backup),[表空间](glossary.html#glos_tablespace).

[](<>)压缩行格式

[](<>)一种**行格式**启用数据和索引**压缩**为了`InnoDB`表。大字段存储在远离包含其余行数据的页面的位置，如**动态行格式**.索引页和大字段都被压缩，从而节省内存和磁盘。根据数据的结构，内存和磁盘使用量的减少可能会或可能不会超过在使用数据时解压缩数据的性能开销。看[第 15.9 节，“InnoDB 表和页面压缩”](innodb-compression.html)了解使用详情。

有关更多信息`InnoDB` `压缩`行格式，见[动态行格式](innodb-row-format.html#innodb-row-format-dynamic).

也可以看看[压缩](glossary.html#glos_compression),[动态行格式](glossary.html#glos_dynamic_row_format),[行格式](glossary.html#glos_row_format).

[](<>)压缩表

[](<>)以压缩形式存储数据的表。为了`InnoDB`，它是一个创建的表`ROW_FORMAT=压缩`.看[第 15.9 节，“InnoDB 表和页面压缩”](innodb-compression.html)了解更多信息。

也可以看看[压缩行格式](glossary.html#glos_compressed_row_format),[压缩](glossary.html#glos_compression).

[](<>)压缩

[](<>)使用更少的磁盘空间、执行更少的 I/O 和使用更少的内存进行缓存的特性具有广泛的好处。

`InnoDB`支持表级和页级压缩。`InnoDB`页面压缩也称为**透明页面压缩**.有关更多信息`InnoDB`压缩，见[第 15.9 节，“InnoDB 表和页面压缩”](innodb-compression.html).

另一种压缩方式是**压缩备份**的特点**MySQL 企业备份**产品。

也可以看看[缓冲池](glossary.html#glos_buffer_pool),[压缩备份](glossary.html#glos_compressed_backup),[压缩行格式](glossary.html#glos_compressed_row_format),[DML](glossary.html#glos_dml),[透明页面压缩](glossary.html#glos_transparent_page_compression).

[](<>)压缩失败

[](<>)实际上不是错误，而是使用时可能发生的昂贵操作**压缩**结合**DML**操作。它在以下情况下发生：更新到压缩文件**页**溢出页面上为记录修改保留的区域；页面再次压缩，所有更改都应用于表数据；重新压缩后的数据放不下原始页面，需要 MySQL 将数据拆分为两个新页面并分别压缩。要检查这种情况的频率，请查询[`INFORMATION_SCHEMA.INNODB_CMP`](information-schema-innodb-cmp-table.html)表并检查有多少的价值`压缩_OPS`列超过的值`COMPRESS_OPS_OK`柱子。理想情况下，压缩故障不会经常发生；当他们这样做时，您可以调整[`innodb_compression_level`](innodb-parameters.html#sysvar_innodb_compression_level),[`innodb_compression_failure_threshold_pct`](innodb-parameters.html#sysvar_innodb_compression_failure_threshold_pct)， 和[`innodb_compression_pad_pct_max`](innodb-parameters.html#sysvar_innodb_compression_pad_pct_max)配置选项。

也可以看看[压缩](glossary.html#glos_compression),[DML](glossary.html#glos_dml),[页](glossary.html#glos_page).

[](<>)级联索引

看[综合指数](glossary.html#glos_composite_index).

[](<>)并发

[](<>)多种操作的能力（在数据库术语中，**交易**) 同时运行，互不干扰。并发性也与性能有关，因为理想情况下，对多个同时事务的保护以最小的性能开销工作，使用有效的机制**锁定**.

也可以看看[酸](glossary.html#glos_acid),[锁定](glossary.html#glos_locking),[交易](glossary.html#glos_transaction).

[](<>)配置文件

[](<>)保存的文件**选项**MySQL 在启动时使用的值。传统上，在 Linux 和 Unix 上，这个文件被命名为`我的.cnf`, 在 Windows 上它被命名为`我的.ini`.您可以在下面设置许多与 InnoDB 相关的选项`[mysqld]`文件的部分。

看见[第4.2.2.2节，“使用选项文件”](option-files.html)有关MySQL在何处搜索配置文件的信息。

当你使用**MySQL企业备份**在该产品中，您通常使用两个配置文件：一个用于指定数据的来源和结构（可能是服务器的原始配置文件），另一个仅包含一小部分选项的精简配置文件，用于指定备份数据的位置和结构。与**MySQL企业备份**产品必须包含常规配置文件中通常没有的某些选项，因此您可能需要将选项添加到现有配置文件中，以便与一起使用**MySQL企业备份**.

另见[我的cnf](glossary.html#glos_my_cnf),[MySQL企业备份](glossary.html#glos_mysql_enterprise_backup),[选项](glossary.html#glos_option),[选项文件](glossary.html#glos_option_file).

[](<>)联系

[](<>)应用程序和MySQL服务器之间的通信通道。数据库应用程序的性能和可伸缩性受以下因素的影响：数据库连接的建立速度、同时建立的连接数量以及它们的持续时间。这些参数包括**主办**,**港口城市**等表示为**连接字符串**在里面**连接器/网络**，作为一个**DSN**在里面**连接器/ODBC**.高流量系统利用一种称为**连接池**.

另见[连接池](glossary.html#glos_connection_pool), [连接字符串](glossary.html#glos_connection_string), [连接器/网络](glossary.html#glos_connector_net), [连接器/ODBC](glossary.html#glos_connector_odbc), [DSN](glossary.html#glos_dsn), [主办](glossary.html#glos_host), [港口城市](glossary.html#glos_port).

[](<>)连接池

[](<>)允许数据库访问的缓存区**连接**在同一个应用程序内或不同的应用程序之间重用，而不是为每个数据库操作建立和断开新连接。这种技术在许多人中很常见**J2EE**应用服务器。**Java**应用程序使用**连接器/J**可以使用的连接池功能**公猫**以及其他应用服务器。重用对应用程序是透明的；应用程序仍然像往常一样打开和关闭连接。

另见[联系](glossary.html#glos_connection), [连接器/J](glossary.html#glos_connector_j), [J2EE](glossary.html#glos_j2ee), [公猫](glossary.html#glos_tomcat).

[](<>)连接字符串

[](<>)数据库参数的表示形式**联系**，编码为字符串文字，以便在程序代码中使用。字符串的部分表示连接参数，例如**主办**和**港口城市**.连接字符串包含多个键值对，以分号分隔。每个键值对用一个等号连接。常用于**连接器/网络**应用；看见[创建连接器/网络连接字符串](https://dev.mysql.com/doc/connector-net/en/connector-net-connections-string.html)详情请参阅。

另见[联系](glossary.html#glos_connection), [连接器/网络](glossary.html#glos_connector_net), [主办](glossary.html#glos_host), [港口城市](glossary.html#glos_port).

[](<>)连接器

[](<>)MySQL连接器提供与MySQL服务器的连接，以便**客户**程序。几种编程语言和框架都有各自的连接器。与较低级别的访问相比**美国石油学会**.

另见[美国石油学会](glossary.html#glos_api), [客户](glossary.html#glos_client), [连接器/C++](glossary.html#glos_connector_c__), [连接器/J](glossary.html#glos_connector_j), [连接器/网络](glossary.html#glos_connector_net), [连接器/ODBC](glossary.html#glos_connector_odbc).

[](<>)连接器/C++

[](<>)Connector/C++8.0可用于访问实现[文档库](document-store.html)，或以传统方式使用SQL查询。它使用XDeAPI开发C++应用程序，或者使用X DeVAPI为C开发纯C应用程序。它还允许开发使用来自连接器/C++ 1.1的基于JDBC的传统API的C++应用程序。有关更多信息，请参阅[MySQL Connector/C++8.0开发者指南](https://dev.mysql.com/doc/connector-cpp/8.0/en/).

另见[客户](glossary.html#glos_client), [连接器](glossary.html#glos_connector), [JDBC](glossary.html#glos_jdbc).

[](<>)连接器/J

[](<>)A.**JDBC**为用户提供连接的驱动程序**客户**在**Java**编程语言。MySQL Connector/J是一个JDBC类型4驱动程序：一个不依赖MySQL的MySQL协议的纯Java实现**客户端库**。有关详细信息，请参阅[MySQL连接器/J 8.0开发者指南](https://dev.mysql.com/doc/connector-j/8.0/en/).

另见[客户](glossary.html#glos_client), [客户端库](glossary.html#glos_client_libraries), [连接器](glossary.html#glos_connector), [Java](glossary.html#glos_java), [JDBC](glossary.html#glos_jdbc).

[](<>)连接器/网络

[](<>)MySQL**连接器**适用于使用语言、技术和框架编写应用程序的开发人员，如**C#**, **网**, **单声道**, **Visual Studio**, **ASP。网**和**阿多。网**.

另见[阿多。网](glossary.html#glos_ado_net), [ASP。网](glossary.html#glos_asp_net), [连接器](glossary.html#glos_connector), [C#](glossary.html#glos_csharp), [单声道](glossary.html#glos_mono), [Visual Studio](glossary.html#glos_visual_studio).

[](<>)连接器/ODBC

[](<>)MySQL ODBC驱动程序系列，使用行业标准的开放数据库连接提供对MySQL数据库的访问(**ODBC**)API。以前称为MyODBC驱动程序。有关详细信息，请参阅[MySQL连接器/ODBC开发人员指南](https://dev.mysql.com/doc/connector-odbc/en/).

另见[连接器](glossary.html#glos_connector), [ODBC](glossary.html#glos_odbc).

[](<>)连接器/PHP

[](<>)一个版本的`mysql`和`mysqli` **API**对于**PHP**针对Windows操作系统进行了优化。

另见[连接器](glossary.html#glos_connector), [PHP](glossary.html#glos_php), [PHP API](glossary.html#glos_php_api).

[](<>)一致读取

[](<>)一种使用**快照**基于时间点显示查询结果的信息，而不管同时运行的其他事务执行的更改。如果查询的数据已被另一个事务更改，则会根据事务的内容重建原始数据**撤消日志**.这种技术避免了一些**锁定**可以减少**并发性**通过强制事务等待其他事务完成。

具有**可重复读取** **隔离级别**，快照基于执行第一次读取操作的时间。具有**阅读承诺**隔离级别，快照将重置为每次一致读取操作的时间。

一致读取是默认模式`InnoDB`过程`选择`声明**阅读承诺**和**可重复读取**隔离级别。由于一致性读取不会对其访问的表设置任何锁，因此在对表执行一致性读取时，其他会话可以自由修改这些表。

有关适用隔离级别的技术详细信息，请参阅[第15.7.2.3节，“一致非锁定读取”](innodb-consistent-read.html).

另见[并发性](glossary.html#glos_concurrency), [隔离级别](glossary.html#glos_isolation_level), [锁定](glossary.html#glos_locking), [阅读承诺](glossary.html#glos_read_committed), [可重复读取](glossary.html#glos_repeatable_read), [快照](glossary.html#glos_snapshot), [交易](glossary.html#glos_transaction), [撤消日志](glossary.html#glos_undo_log).

[](<>)限制

[](<>)一种自动测试，可以阻止数据库更改，以防止数据变得不一致。（在计算机科学术语中，一种与不变条件有关的断言。）约束是整个过程的关键组成部分**酸的**理念，保持数据的一致性。MySQL支持的约束包括**外键约束**和**唯一约束**.

另见[酸的](glossary.html#glos_acid), [外键](glossary.html#glos_foreign_key), [唯一约束](glossary.html#glos_unique_constraint).

[](<>)柜台

[](<>)一种由特定类型的变量递增的值`InnoDB`活动用于测量服务器的繁忙程度、排除性能问题的根源，以及测试更改（例如，对查询使用的配置设置或索引的更改）是否具有所需的低级效果。不同种类的柜台可以通过**性能模式**桌子和**信息\_模式**尤其是桌子`信息模式。INNODB_度量`.

另见[信息\_模式](glossary.html#glos_information_schema), [度量计数器](glossary.html#glos_metrics_counter), [性能模式](glossary.html#glos_performance_schema).

[](<>)覆盖指数

[](<>)一**指数**包括查询检索到的所有列。查询不使用索引值作为指针来查找完整的表行，而是从索引结构返回值，从而节省磁盘I/O。`InnoDB`可以将这种优化技术应用于比MyISAM更多的索引，因为`InnoDB` **二级索引**还包括**主键**柱。`InnoDB`在事务结束之前，无法将此技术应用于查询由事务修改的表。

任何**列索引**或**综合指数**如果查询正确，可以用作覆盖索引。设计索引和查询，尽可能利用这种优化技术。

另见[列索引](glossary.html#glos_column_index), [综合指数](glossary.html#glos_composite_index), [指数](glossary.html#glos_index), [主键](glossary.html#glos_primary_key), [二级索引](glossary.html#glos_secondary_index).

[](<>)CPU受限

[](<>)一种**工作量**小学在哪里**瓶颈**是内存中的CPU操作。通常涉及读密集型操作，其中结果都可以缓存在**缓冲池**.

另见[瓶颈](glossary.html#glos_bottleneck), [缓冲池](glossary.html#glos_buffer_pool), [工作量](glossary.html#glos_workload).

[](<>)崩溃

[](<>)MySQL使用术语“崩溃”来泛指任何意外情况**关闭**服务器无法进行正常清理的操作。例如，数据库服务器机器或存储设备上的硬件故障可能会导致崩溃；停电；导致MySQL服务器停止的潜在数据不匹配；A.**快速关机**由DBA发起；或者其他很多原因。强大的、自动的**事故恢复**对于**InnoDB**tables确保服务器重启时数据保持一致，而不需要DBA做任何额外的工作。

另见[事故恢复](glossary.html#glos_crash_recovery), [快速关机](glossary.html#glos_fast_shutdown), [InnoDB](glossary.html#glos_innodb), [关闭](glossary.html#glos_shutdown).

[](<>)事故恢复

[](<>)当MySQL在运行一段时间后再次启动时发生的清理活动**崩溃**对于**InnoDB**表中，不完整事务的更改将使用**重做日志文件**.改变**坚信的**在坠机前，但尚未写入**数据文件**，是从**双写缓冲区**.当数据库正常关闭时，此类型的活动由**净化**活动

在正常操作期间，提交的数据可以存储在**更换缓冲区**在写入数据文件之前的一段时间。在保持数据文件的最新状态（这会在正常操作期间带来性能开销）和缓冲数据（这会使关机和崩溃恢复花费更长时间）之间，始终存在一种折衷。

另见[更换缓冲区](glossary.html#glos_change_buffer), [犯罪](glossary.html#glos_commit), [崩溃](glossary.html#glos_crash), [数据文件](glossary.html#glos_data_files), [双写缓冲区](glossary.html#glos_doublewrite_buffer), [InnoDB](glossary.html#glos_innodb), [净化](glossary.html#glos_purge), [重做日志文件](glossary.html#glos_redo_log).

[](<>)积垢

[](<>)“创建、读取、更新、删除”的首字母缩写，这是数据库应用程序中常见的操作序列。通常表示一类数据库使用相对简单的应用程序（基本**DDL**, **DML**和**查询**声明**SQL**)这可以用任何语言快速实现。

另见[DDL](glossary.html#glos_ddl), [DML](glossary.html#glos_dml), [查询](glossary.html#glos_query), [SQL](glossary.html#glos_sql).

[](<>)光标

[](<>)表示SQL语句结果集的内部MySQL数据结构。常用于**准备好的声明**和**动态结构化查询语言**。它的工作原理类似于其他高级语言中的迭代器，根据请求从结果集中生成每个值。

虽然SQL通常为您处理游标的处理，但在处理性能关键代码时，您可能会深入研究内部工作。

另见[动态结构化查询语言](glossary.html#glos_dynamic_sql), [准备好的声明](glossary.html#glos_prepared_statement), [查询](glossary.html#glos_query).

### D

[](<>)数据定义语言

看见[DDL](glossary.html#glos_ddl).

[](<>)数据字典

[](<>)跟踪数据库对象的元数据，例如**桌子**, **索引**，还有桌子**柱**.对于MySQL 8.0中引入的MySQL数据字典，元数据在物理上位于`InnoDB` **每个表的文件数**数据库中的表空间文件`mysql`数据库目录。对于`InnoDB`数据字典，元数据物理上位于`InnoDB` **系统表空间**.

因为**MySQL企业备份**产品始终支持`InnoDB`系统表空间，所有备份都包括`InnoDB`数据字典。

另见[柱](glossary.html#glos_column), [每个表的文件数](glossary.html#glos_file_per_table), [.frm文件](glossary.html#glos_frm_file), [指数](glossary.html#glos_index), [MySQL企业备份](glossary.html#glos_mysql_enterprise_backup), [系统表空间](glossary.html#glos_system_tablespace), [桌子](glossary.html#glos_table).

[](<>)数据目录

[](<>)每个MySQL所属的目录**例子**保持**数据文件**对于`InnoDB`以及代表各个数据库的目录。由政府控制[`数据目录`](server-system-variables.html#sysvar_datadir)配置选项。

另见[数据文件](glossary.html#glos_data_files), [例子](glossary.html#glos_instance).

[](<>)数据文件

[](<>)物理上包含**桌子**和**指数**数据

这个`InnoDB` **系统表空间**，它持有`InnoDB` **数据字典**并且能够为多个应用程序保存数据`InnoDB`表，由一个或多个`.ibdata`数据文件。

每个表的文件表空间，用于保存单个表的数据`InnoDB`表，由`.传染性法氏囊病`数据文件。

通用表空间（在MySQL 5.7.6中引入），可以为多个数据库保存数据`InnoDB`表也由`.传染性法氏囊病`数据文件。

另见[数据字典](glossary.html#glos_data_dictionary), [每个表的文件数](glossary.html#glos_file_per_table), [通用表空间](glossary.html#glos_general_tablespace), [.ibd文件](glossary.html#glos_ibd_file), [ibdata文件](glossary.html#glos_ibdata_file), [指数](glossary.html#glos_index), [系统表空间](glossary.html#glos_system_tablespace), [桌子](glossary.html#glos_table), [表空间](glossary.html#glos_tablespace).

[](<>)数据操作语言

看见[DML](glossary.html#glos_dml).

[](<>)数据仓库

[](<>)主要运行大型数据库的数据库系统或应用程序**询问**.只读或以读为主的数据可能组织在**规格化**用于提高查询效率的表单。可以从以下方面的优化中受益：**只读事务**在MySQL 5.6及更高版本中。对比**OLTP**.

另见[规格化](glossary.html#glos_denormalized), [OLTP](glossary.html#glos_oltp), [查询](glossary.html#glos_query), [只读事务](glossary.html#glos_read_only_transaction).

[](<>)数据库

[](<>)在MySQL中**数据目录**，每个数据库由一个单独的目录表示。InnoDB**系统表空间**，它可以在一个MySQL中保存来自多个数据库的表数据**例子**，保存在**数据文件**位于单个数据库目录之外的。什么时候**每个表的文件数**模式启用后**.ibd文件**除非在其他地方使用`数据目录`条款MySQL 5.7.6中引入的通用表空间也在**.ibd文件**.不同于每个表的文件**.ibd文件**，通用表空间**.ibd文件**可以在MySQL中保存来自多个数据库的表数据**例子**，并可以分配到相对于或独立于MySQL数据目录的目录。

对于MySQL的长期用户来说，数据库是一个熟悉的概念。来自Oracle数据库背景的用户可能会发现，数据库的MySQL含义更接近Oracle数据库所称的**模式**.

另见[数据文件](glossary.html#glos_data_files), [每个表的文件数](glossary.html#glos_file_per_table), [.ibd文件](glossary.html#glos_ibd_file), [例子](glossary.html#glos_instance), [模式](glossary.html#glos_schema), [系统表空间](glossary.html#glos_system_tablespace).

[](<>)DCL

[](<>)数据控制语言，一套**SQL**用于管理权限的语句。在MySQL中，由[`授予`](grant.html)和[`撤销`](revoke.html)声明。对比**DDL**和**DML**.

另见[DDL](glossary.html#glos_ddl), [DML](glossary.html#glos_dml),[SQL](glossary.html#glos_sql).

[](<>)DDEX 提供者

[](<>)一项可让您使用数据设计工具的功能**视觉工作室**操作 MySQL 数据库中的模式和对象。对于 MySQL 应用程序使用**连接器/网络**，MySQL Visual Studio 插件充当 MySQL 5.0 及更高版本的 DDEX 提供程序。

也可以看看[视觉工作室](glossary.html#glos_visual_studio).

[](<>)DDL

[](<>)数据定义语言，一组**SQL**用于操作数据库本身而不是单个表行的语句。包括所有形式的`创建`,`改变`， 和`降低`陈述。还包括`截短`声明，因为它的工作方式不同于`从 * 中删除`表名`*`声明，即使最终效果相似。

DDL 语句自动**犯罪**当前**交易**;他们不可能**回滚**.

这`InnoDB` [在线 DDL](glossary.html#glos_online_ddl)功能增强了性能[`创建索引`](create-index.html),[`删除索引`](drop-index.html), 和多种类型[`更改表`](alter-table.html)操作。看[第 15.12 节，“InnoDB 和在线 DDL”](innodb-online-ddl.html)了解更多信息。此外，该`InnoDB` [每表文件](glossary.html#glos_file_per_table)设置可以影响的行为[`删除表`](drop-table.html)和[`截断表`](truncate-table.html)操作。

对比**DML**和**DCL**.

也可以看看[犯罪](glossary.html#glos_commit),[DCL](glossary.html#glos_dcl),[DML](glossary.html#glos_dml),[每表文件](glossary.html#glos_file_per_table),[回滚](glossary.html#glos_rollback),[SQL](glossary.html#glos_sql),[交易](glossary.html#glos_transaction).

[](<>)僵局

[](<>)不同的情况**交易**无法继续进行，因为每个人都持有一个**锁**对方需要。因为两个事务都在等待资源变得可用，所以没有一个事务释放它持有的锁。

当事务锁定多个表中的行时（通过诸如`更新`要么`选择 ... 更新`)，但顺序相反。当此类语句锁定索引记录范围并且**差距**，由于时间问题，每个事务都获得了一些锁，但没有获得其他锁。

有关如何自动检测和处理死锁的背景信息，请参阅[第 15.7.5.2 节，“死锁检测”](innodb-deadlock-detection.html).有关避免和从死锁条件中恢复的提示，请参阅[第 15.7.5.3 节，“如何最小化和处理死锁”](innodb-deadlocks-handling.html).

也可以看看[差距](glossary.html#glos_gap),[锁](glossary.html#glos_lock),[交易](glossary.html#glos_transaction).

[](<>)死锁检测

[](<>)一种自动检测何时发生的机制**僵局**发生，并自动**回滚**中的一个**交易**涉及（**受害者**）。死锁检测可以使用禁用[`innodb_deadlock_detect`](innodb-parameters.html#sysvar_innodb_deadlock_detect)配置选项。

也可以看看[僵局](glossary.html#glos_deadlock),[回滚](glossary.html#glos_rollback),[交易](glossary.html#glos_transaction),[受害者](glossary.html#glos_victim).

[](<>)删除

[](<>)什么时候`InnoDB`处理一个`删除`语句，这些行立即被标记为删除并且不再由查询返回。存储在稍后的某个时间被回收，在称为定期垃圾收集期间**清除**手术。对于大量数据的去除，相关的操作有自己的性能特点**截短**和**降低**.

也可以看看[降低](glossary.html#glos_drop),[清除](glossary.html#glos_purge),[截短](glossary.html#glos_truncate).

[](<>)删除缓冲

[](<>)将更改存储到二级索引页面的技术，由`删除`操作，在**更改缓冲区**而不是立即写入更改，以便可以执行物理写入以最小化随机 I/O。（因为删除操作是一个两步的过程，所以这个操作缓冲了通常将索引记录标记为删除的写入。）它是以下类型之一**变化缓冲**;其他的是**插入缓冲**和**吹扫缓冲**.

也可以看看[更改缓冲区](glossary.html#glos_change_buffer),[变化缓冲](glossary.html#glos_change_buffering),[插入缓冲区](glossary.html#glos_insert_buffer),[插入缓冲](glossary.html#glos_insert_buffering),[吹扫缓冲](glossary.html#glos_purge_buffering).

[](<>)非规范化

[](<>)一种数据存储策略，在不同的表之间复制数据，而不是将表与**外键**和**加入**查询。通常用于**数据仓库**应用程序，其中数据在加载后不更新。在此类应用程序中，查询性能比在更新期间保持一致数据变得简单更重要。对比**归一化**.

也可以看看[数据仓库](glossary.html#glos_data_warehouse),[外键](glossary.html#glos_foreign_key),[加入](glossary.html#glos_join),[归一化](glossary.html#glos_normalized).

[](<>)降序索引

[](<>)一种**指数**优化索引存储以处理`订购人 *`柱子`* DESC`条款。

也可以看看[指数](glossary.html#glos_index).

[](<>)字典对象缓存

[](<>)字典对象缓存存储以前访问过的**数据字典**内存中的对象以启用对象重用并最小化磁盘 I/O。一个**LRU**-based eviction strategy 用于从内存中逐出最近最少使用的对象。缓存由存储不同对象类型的多个分区组成。

有关详细信息，请参阅[第 14.4 节，“字典对象缓存”](data-dictionary-object-cache.html).

也可以看看[数据字典](glossary.html#glos_data_dictionary),[LRU](glossary.html#glos_lru).

[](<>)脏页

[](<>)一种**页**在里面`InnoDB` **缓冲池**已在内存中更新，尚未写入更改（**酡**) 到**数据文件**.一个相反的**干净的页面**.

也可以看看[缓冲池](glossary.html#glos_buffer_pool),[干净的页面](glossary.html#glos_clean_page),[数据文件](glossary.html#glos_data_files),[冲洗](glossary.html#glos_flush),[页](glossary.html#glos_page).

[](<>)脏读

[](<>)检索不可靠数据的操作，即由另一个事务更新但尚未更新的数据**坚定的**.只有通过**隔离级别**被称为**读未提交**.

这种操作不符合**酸**数据库设计原则。它被认为是非常危险的，因为数据可能是**回滚**，或在提交之前进一步更新；然后，执行脏读的事务将使用从未被确认为准确的数据。

它的反面是**一致读**， 在哪里`InnoDB`确保一个事务不会读取另一个事务更新的信息，即使另一个事务同时提交。

也可以看看[酸](glossary.html#glos_acid),[犯罪](glossary.html#glos_commit),[一致读](glossary.html#glos_consistent_read),[隔离级别](glossary.html#glos_isolation_level),[阅读未提交](glossary.html#glos_read_uncommitted),[回滚](glossary.html#glos_rollback).

[](<>)基于磁盘的

[](<>)一种主要在磁盘存储（硬盘驱动器或同等设备）上组织数据的数据库。数据在要操作的磁盘和内存之间来回传输。它与一个相反**内存数据库**.虽然`InnoDB`是基于磁盘的，它还包含诸如 he**缓冲池**，多个缓冲池实例，以及**自适应哈希索引**允许某些类型的工作负载主要从内存中工作。

也可以看看[自适应哈希索引](glossary.html#glos_adaptive_hash_index),[缓冲池](glossary.html#glos_buffer_pool),[内存数据库](glossary.html#glos_in_memory_database).

[](<>)磁盘绑定

[](<>)一种**工作量**主要在哪里**瓶颈**是磁盘 I/O。（也称为**I/O 绑定**.) 通常涉及对磁盘的频繁写入，或随机读取超出磁盘容量的数据**缓冲池**.

也可以看看[瓶颈](glossary.html#glos_bottleneck),[缓冲池](glossary.html#glos_buffer_pool),[工作量](glossary.html#glos_workload).

[](<>)DML

[](<>)数据操作语言，一组**SQL**执行语句[`插入`](insert.html),[`更新`](update.html)， 和[`删除`](delete.html)操作。这[`选择`](select.html)语句有时被视为 DML 语句，因为`选择 ... 更新`形式是受相同的考虑因素**锁定**作为[`插入`](insert.html),[`更新`](update.html)， 和[`删除`](delete.html).

DML 语句`InnoDB`表在一个上下文中运行**交易**, 所以他们的影响可以是**坚定的**要么**回滚**作为一个单元。

对比**DDL**和**DCL**.

也可以看看[犯罪](glossary.html#glos_commit),[DCL](glossary.html#glos_dcl),[DDL](glossary.html#glos_ddl),[锁定](glossary.html#glos_locking),[回滚](glossary.html#glos_rollback),[SQL](glossary.html#glos_sql),[交易](glossary.html#glos_transaction).

[](<>)文件编号

[](<>)在里面`InnoDB` **全文检索**特征，表中的一个特殊列，包含**全文索引**, 以唯一标识与每个相关联的文档**列表**价值。它的名字是`FTS_DOC_ID`（需要大写）。列本身必须是`BIGINT 无符号非空`类型，具有名为的唯一索引`FTS_DOC_ID_INDEX`.最好在创建表时定义此列。如果`InnoDB`必须在创建时将列添加到表中`全文`索引，索引操作要昂贵得多。

也可以看看[全文检索](glossary.html#glos_full_text_search),[全文索引](glossary.html#glos_fulltext_index),[列表](glossary.html#glos_ilist).

[](<>)双写缓冲区

[](<>) `InnoDB`使用称为双写的文件刷新技术。写之前**页面**到**数据文件**,`InnoDB`首先将它们写入称为双写缓冲区的存储区域。只有在对双写缓冲区的写入和刷新完成后，`InnoDB`将页面写入数据文件中的适当位置。如果有操作系统、存储子系统或[**mysqld**](mysqld.html)在页面写入过程中进程崩溃，`InnoDB`以后可以在双写缓冲区中找到一个好的页面副本**崩溃恢复**.

尽管数据总是被写入两次，但双写缓冲区不需要两倍的 I/O 开销或两倍的 I/O 操作。数据作为一个大的顺序块写入缓冲区本身，只有一个`同步（）`调用操作系统。

要关闭双写缓冲区，请指定选项[`innodb_doublewrite=0`](innodb-parameters.html#sysvar_innodb_doublewrite).

也可以看看[崩溃恢复](glossary.html#glos_crash_recovery),[数据文件](glossary.html#glos_data_files),[页](glossary.html#glos_page),[清除](glossary.html#glos_purge).

[](<>)降低

[](<>)一种**DDL**删除模式对象的操作，通过语句如[`删除表`](drop-table.html)要么[`删除索引`](drop-index.html).它在内部映射到[`更改表`](alter-table.html)陈述。从一个`InnoDB`的角度来看，此类操作的性能考虑涉及的时间**数据字典**被锁定以确保相互关联的对象都被更新，以及更新内存结构的时间，例如**缓冲池**.为一个**桌子**, drop 操作与 a 有一些不同的特征**截短**手术 （[`截断表`](truncate-table.html)陈述）。

也可以看看[缓冲池](glossary.html#glos_buffer_pool),[数据字典](glossary.html#glos_data_dictionary),[DDL](glossary.html#glos_ddl),[桌子](glossary.html#glos_table),[截短](glossary.html#glos_truncate).

[](<>)数字网络

[](<>)“数据库源名称”的缩写。这是编码**联系**内的信息**连接器/ODBC**.看[在 Windows 上配置连接器/ODBC DSN](https://dev.mysql.com/doc/connector-odbc/en/connector-odbc-configuration-dsn-windows.html)完整的细节。它相当于**连接字符串**被使用**连接器/网络**.

也可以看看[联系](glossary.html#glos_connection),[连接字符串](glossary.html#glos_connection_string),[连接器/网络](glossary.html#glos_connector_net),[连接器/ODBC](glossary.html#glos_connector_odbc).

[](<>)动态游标

[](<>)一种**光标**支持**ODBC**当再次读取行时，它可以获取新的和更改的结果。更改对游标是否可见以及以多快的速度可见取决于所涉及的表的类型（事务或非事务）和事务表的隔离级别。必须显式启用对动态游标的支持。

也可以看看[光标](glossary.html#glos_cursor),[ODBC](glossary.html#glos_odbc).

[](<>)动态行格式

[](<>)一个`InnoDB`行格式。由于长可变长度列值存储在保存行数据的页面之外，因此对于包含大对象的行非常有效。由于通常不会访问大字段来评估查询条件，因此不会将它们带入**缓冲池**通常，会导致更少的 I/O 操作和更好的缓存内存利用率。

从 MySQL 5.7.9 开始，默认行格式定义为[`innodb_default_row_format`](innodb-parameters.html#sysvar_innodb_default_row_format)，其默认值为`动态的`.

有关更多信息`InnoDB` `动态的`行格式，见[动态行格式](innodb-row-format.html#innodb-row-format-dynamic).

也可以看看[缓冲池](glossary.html#glos_buffer_pool), [文件格式](glossary.html#glos_file_format), [行格式](glossary.html#glos_row_format).

[](<>)动态 SQL

[](<>)一项可让您创建和执行的功能**准备好的陈述**与将语句的各部分连接成字符串变量的简单技术相比，使用更健壮、安全和有效的方法来替换参数值。

也可以看看[准备好的陈述](glossary.html#glos_prepared_statement).

[](<>)动态声明

[](<>)一种**准备好的陈述**通过创建和执行**动态 SQL**.

也可以看看[动态 SQL](glossary.html#glos_dynamic_sql), [准备好的陈述](glossary.html#glos_prepared_statement).

### 乙

[](<>)早期采用者

[](<>)类似的阶段**测试版**，通常在非关键任务设置中评估软件产品的性能、功能和兼容性时。

也可以看看[测试版](glossary.html#glos_beta).

[](<>)埃菲尔

[](<>)一种编程语言，包括许多面向对象的特性。它的一些概念是熟悉的**爪哇**和**C＃**开发商。对于开源 Eiffel**API**对于 MySQL，请参阅[第 29.13 节，“MySQL Eiffel Wrapper”](apis-eiffel.html).

也可以看看[API](glossary.html#glos_api),[C＃](glossary.html#glos_csharp),[爪哇](glossary.html#glos_java).

[](<>)嵌入式

[](<>)嵌入式 MySQL 服务器库 (**库mysqld**) 使得在一个内部运行一个全功能的 MySQL 服务器成为可能**客户**应用。主要好处是嵌入式应用程序的速度提高和管理更简单。

也可以看看[客户](glossary.html#glos_client),[库mysqld](glossary.html#glos_libmysqld).

[](<>)错误日志

[](<>)一种**日志**显示有关 MySQL 启动和关键运行时错误的信息，以及**碰撞**信息。有关详细信息，请参阅[第 5.4.2 节，“错误日志”](error-log.html).

也可以看看[碰撞](glossary.html#glos_crash),[日志](glossary.html#glos_log).

[](<>)驱逐

[](<>)从缓存或其他临时存储区域中删除项目的过程，例如`InnoDB` **缓冲池**.通常（但并非总是）使用**LRU**算法来确定要删除的项目。当一个**脏页**被驱逐，其内容是**酡**到磁盘，以及任何脏的**相邻页面**也可能被冲洗掉。

也可以看看[缓冲池](glossary.html#glos_buffer_pool),[脏页](glossary.html#glos_dirty_page),[冲洗](glossary.html#glos_flush),[LRU](glossary.html#glos_lru),[邻居页面](glossary.html#glos_neighbor_page).

[](<>)异常拦截器

[](<>)一种**拦截器**用于跟踪、调试或扩充数据库应用程序遇到的 SQL 错误。例如，拦截器代码可以发出一个`显示警告`语句来检索附加信息，并添加描述性文本甚至更改返回给应用程序的异常类型。因为拦截器代码仅在 SQL 语句返回错误时被调用，所以它不会在正常（无错误）操作期间对应用程序造成任何性能损失。

在**爪哇**应用程序使用**连接器/J**，设置这种类型的拦截器涉及实现`com.mysql.jdbc.ExceptionInterceptor`界面，并添加一个`异常拦截器`财产给**连接字符串**.

在**视觉工作室**应用程序使用**连接器/网络**，设置这种类型的拦截器涉及定义一个继承自`BaseExceptionInterceptor`类并将该类名指定为连接字符串的一部分。

也可以看看[连接器/J](glossary.html#glos_connector_j),[连接器/网络](glossary.html#glos_connector_net),[拦截器](glossary.html#glos_interceptor),[爪哇](glossary.html#glos_java),[视觉工作室](glossary.html#glos_visual_studio).

[](<>)排他锁

[](<>)一种**锁**防止任何其他**交易**从锁定同一行。视交易而定**隔离级别**，这种锁可能会阻止其他事务写入同一行，或者也可能阻止其他事务读取同一行。默认`InnoDB`隔离级别，**可重复阅读**，使更高**并发**通过允许事务读取具有排他锁的行，这种技术称为**一致读**.

也可以看看[并发](glossary.html#glos_concurrency),[一致读](glossary.html#glos_consistent_read),[隔离级别](glossary.html#glos_isolation_level),[锁](glossary.html#glos_lock),[可重复阅读](glossary.html#glos_repeatable_read),[共享锁](glossary.html#glos_shared_lock),[交易](glossary.html#glos_transaction).

[](<>)程度

[](<>)一群**页面**在一个**表空间**.对于默认**页面大小**16KB，一个extent包含64页。在 MySQL 5.6 中，页面大小为`InnoDB`实例可以是 4KB、8KB 或 16KB，由[`innodb_page_size`](innodb-parameters.html#sysvar_innodb_page_size)配置选项。对于 4KB、8KB 和 16KB 页面大小，扩展区大小始终为 1MB（或 1048576 字节）。

支持 32KB 和 64KB`InnoDB`在 MySQL 5.7.6 中添加了页面大小。对于 32KB 的页面大小，extent 大小为 2MB。对于 64KB 的页面大小，extent 大小为 4MB。

`InnoDB`诸如**细分市场**,**预读**请求和**双写缓冲区**使用 I/O 操作，一次读取、写入、分配或释放数据一个区。

也可以看看[双写缓冲区](glossary.html#glos_doublewrite_buffer),[页](glossary.html#glos_page),[页面大小](glossary.html#glos_page_size),[预读](glossary.html#glos_read_ahead),[部分](glossary.html#glos_segment),[表空间](glossary.html#glos_tablespace).

### F

[](<>).frm 文件

[](<>)包含 MySQL 表的元数据（例如表定义）的文件。`.frm`文件在 MySQL 8.0 中被删除，但在早期的 MySQL 版本中仍然使用。在 MySQL 8.0 中，以前存储在`.frm`文件存储在**数据字典**表。

也可以看看[数据字典](glossary.html#glos_data_dictionary),[MySQL 企业备份](glossary.html#glos_mysql_enterprise_backup),[系统表空间](glossary.html#glos_system_tablespace).

[](<>)故障转移

[](<>)发生故障时自动切换到备用服务器的能力。在 MySQL 上下文中，故障转移涉及备用数据库服务器。通常在内部支持**J2EE**应用程序服务器或框架的环境。

也可以看看[连接器/J](glossary.html#glos_connector_j),[J2EE](glossary.html#glos_j2ee).

[](<>)快速创建索引

[](<>)InnoDB Plugin 中首次引入的一项功能，现在是 MySQL 5.5 及更高版本的一部分，可加快创建`InnoDB` **二级索引**通过避免完全重写关联表的需要。加速也适用于删除二级索引。

因为索引维护会增加许多数据传输操作的性能开销，所以考虑执行诸如`ALTER TABLE ... 引擎=INNODB`要么`插入 ... 选择 * 从 ...`没有任何二级索引，然后创建索引。

在 MySQL 5.6 中，这个特性变得更加通用。您可以在创建索引时读取和写入表，以及更多种类的[`更改表`](alter-table.html)无需复制表即可执行操作，无需阻塞**DML**操作，或两者兼而有之。因此在 MySQL 5.6 及更高版本中，这组特性被称为**在线 DDL**而不是快速创建索引。

有关相关信息，请参阅[第 15.12 节，“InnoDB 和在线 DDL”](innodb-online-ddl.html).

也可以看看[DML](glossary.html#glos_dml),[指数](glossary.html#glos_index),[在线 DDL](glossary.html#glos_online_ddl),[二级索引](glossary.html#glos_secondary_index).

[](<>)快速关机

[](<>)默认**关掉**程序`InnoDB`, 基于配置设置[`innodb_fast_shutdown=1`](innodb-parameters.html#sysvar_innodb_fast_shutdown).为了节省时间，某些**冲洗**操作被跳过。这种类型的关闭在正常使用期间是安全的，因为刷新操作是在下次启动时执行的，使用与中相同的机制**崩溃恢复**.如果数据库因升级或降级而关闭，请执行**缓慢关机**而是确保将所有相关更改应用于**数据文件**在关机期间。

也可以看看[崩溃恢复](glossary.html#glos_crash_recovery),[数据文件](glossary.html#glos_data_files),[冲洗](glossary.html#glos_flush),[关掉](glossary.html#glos_shutdown),[缓慢关机](glossary.html#glos_slow_shutdown).

[](<>)文件格式

[](<>)文件格式为`InnoDB`表。

也可以看看[每表文件](glossary.html#glos_file_per_table),[.ibd 文件](glossary.html#glos_ibd_file),[ibdata 文件](glossary.html#glos_ibdata_file),[行格式](glossary.html#glos_row_format).

[](<>)每表文件

[](<>)由控制的设置的通用名称[`innodb_file_per_table`](innodb-parameters.html#sysvar_innodb_file_per_table)选项，这是一个重要的配置选项，会影响`InnoDB`文件存储、功能可用性和 I/O 特性。从 MySQL 5.6.7 开始，[`innodb_file_per_table`](innodb-parameters.html#sysvar_innodb_file_per_table)默认启用。

随着[`innodb_file_per_table`](innodb-parameters.html#sysvar_innodb_file_per_table)启用选项，您可以自己创建一个表**.ibd 文件**而不是在共享**ibdata 文件**的**系统表空间**.当表数据存储在个人中时**.ibd 文件**，您有更多的选择灵活性**行格式**数据等功能所需**压缩**.这`截断表`操作也更快，并且回收的空间可以由操作系统使用，而不是保留为`InnoDB`.

这**MySQL 企业备份**product 对于自己文件中的表更灵活。例如，可以从备份中排除表，但前提是它们位于单独的文件中。因此，此设置适用于备份频率较低或按不同计划备份的表。

也可以看看[压缩行格式](glossary.html#glos_compressed_row_format),[压缩](glossary.html#glos_compression),[文件格式](glossary.html#glos_file_format),[.ibd 文件](glossary.html#glos_ibd_file),[ibdata 文件](glossary.html#glos_ibdata_file),[innodb\_文件\_每\_桌子](glossary.html#glos_innodb_file_per_table),[MySQL 企业备份](glossary.html#glos_mysql_enterprise_backup),[行格式](glossary.html#glos_row_format),[系统表空间](glossary.html#glos_system_tablespace).

[](<>)填充因子

[](<>)在一个`InnoDB` **指数**, a 的比例**页**在页面被拆分之前被索引数据占用。索引数据首次在页面之间划分时的未使用空间允许使用更长的字符串值更新行，而无需昂贵的索引维护操作。如果填充因子太低，索引会占用比需要更多的空间，从而在读取索引时导致额外的 I/O 开销。如果填充因子太高，任何增加列值长度的更新都可能导致索引维护的额外 I/O 开销。看[第 15.6.2.2 节，“InnoDB 索引的物理结构”](innodb-physical-structure.html)了解更多信息。

也可以看看[指数](glossary.html#glos_index),[页](glossary.html#glos_page).

[](<>)固定行格式

[](<>)此行格式由`MyISAM`存储引擎，而不是由`InnoDB`.如果你创建一个`InnoDB`带有选项的表`ROW_FORMAT=固定`在 MySQL 5.7.6 或更早版本中，`InnoDB`使用**紧凑的行格式**相反，虽然`固定的`值可能仍会出现在输出中，例如`显示表状态`报告。从 MySQL 5.7.7 开始，`InnoDB`如果返回错误`ROW_FORMAT=固定`被指定。

也可以看看[紧凑的行格式](glossary.html#glos_compact_row_format),[行格式](glossary.html#glos_row_format).

[](<>)冲洗

[](<>)将更改写入已缓冲在内存区域或临时磁盘存储区域中的数据库文件。这`InnoDB`定期刷新的存储结构包括**重做日志**， 这**撤消日志**, 和**缓冲池**.

由于内存区域已满并且系统需要释放一些空间，因此可能会发生刷新，因为**犯罪**操作意味着可以完成交易的更改，或者因为**缓慢关机**操作意味着所有未完成的工作都应该完成。当一次刷新所有缓冲数据并不重要时，`InnoDB`可以使用一种叫做**模糊检查点**刷新小批量页面以分散 I/O 开销。

也可以看看[缓冲池](glossary.html#glos_buffer_pool),[犯罪](glossary.html#glos_commit),[模糊检查点](glossary.html#glos_fuzzy_checkpointing),[重做日志](glossary.html#glos_redo_log),[缓慢关机](glossary.html#glos_slow_shutdown),[撤消日志](glossary.html#glos_undo_log).

[](<>)刷新列表

[](<>)一个内部`InnoDB`跟踪的数据结构**脏页**在里面**缓冲池**： 那是，**页面**已更改并需要写回磁盘。这个数据结构经常更新`InnoDB`内部的**小额交易**，因此受到自己的保护**互斥体**允许并发访问缓冲池。

也可以看看[缓冲池](glossary.html#glos_buffer_pool),[脏页](glossary.html#glos_dirty_page),[LRU](glossary.html#glos_lru),[小额交易](glossary.html#glos_mini_transaction),[互斥体](glossary.html#glos_mutex),[页](glossary.html#glos_page),[页面清洁器](glossary.html#glos_page_cleaner).

[](<>)外键

[](<>)一种指针关系，在单独的行之间`InnoDB`表。外键关系在两者中的一列上定义**父表**和**子表**.

除了能够快速查找相关信息外，外键还有助于强制执行**参照完整性**，通过防止这些指针中的任何一个在插入、更新和删除数据时变得无效。这种执行机制是一种**约束**.如果关联的外键值在另一个表中不存在，则无法插入指向另一个表的行。如果某行被删除或其外键值改变，而另一个表中的行指向该外键值，则可以设置外键来防止删除，导致另一个表中对应的列值变为**空值**，或者自动删除其他表中对应的行。

设计阶段之一**归一化**数据库是识别重复的数据，将数据分离到一个新表中，并设置外键关系，以便可以像查询单个表一样查询多个表，使用**加入**手术。

也可以看看[子表](glossary.html#glos_child_table),[FOREIGN KEY 约束](glossary.html#glos_foreign_key_constraint),[加入](glossary.html#glos_join),[归一化](glossary.html#glos_normalized),[空值](glossary.html#glos_null),[父表](glossary.html#glos_parent_table),[参照完整性](glossary.html#glos_referential_integrity),[关系](glossary.html#glos_relational).

[](<>)FOREIGN KEY 约束

[](<>)的类型**约束**它通过一个维护数据库的一致性**外键**关系。与其他类型的约束一样，它可以防止数据不一致时插入或更新数据；在这种情况下，要防止的不一致是在多个表中的数据之间。或者，当一个**DML**执行操作，`外键`约束可能导致数据**子行**被删除，更改为不同的值，或设置为**空值**，基于`级联`创建外键时指定的选项。

也可以看看[子表](glossary.html#glos_child_table),[约束](glossary.html#glos_constraint),[DML](glossary.html#glos_dml),[外键](glossary.html#glos_foreign_key),[空值](glossary.html#glos_null).

[](<>)FTS

[](<>)在大多数情况下，缩写为**全文检索**.有时在性能讨论中，缩写为**全表扫描**.

也可以看看[全表扫描](glossary.html#glos_full_table_scan),[全文检索](glossary.html#glos_full_text_search).

[](<>)完全备份

[](<>)一种**备份**这包括所有**表**在每个 MySQL**数据库**, 以及 MySQL 中的所有数据库**实例**.对比**部分备份**.

也可以看看[备份](glossary.html#glos_backup),[数据库](glossary.html#glos_database),[实例](glossary.html#glos_instance),[部分备份](glossary.html#glos_partial_backup),[桌子](glossary.html#glos_table).

[](<>)全表扫描

[](<>)需要读取表的全部内容的操作，而不仅仅是使用**指数**.通常使用小型查找表执行，或者在具有大型表的数据仓库情况下执行，其中所有可用数据都被聚合和分析。这些操作发生的频率，以及表相对于可用内存的大小，对查询优化和管理数据库中使用的算法有影响。**缓冲池**.

索引的目的是允许在大表中查找特定值或值范围，从而在可行时避免全表扫描。

也可以看看[缓冲池](glossary.html#glos_buffer_pool),[指数](glossary.html#glos_index).

[](<>)全文检索

[](<>)MySQL 用于在表数据中查找单词、短语、单词的布尔组合等的功能，比使用 SQL 更快、更方便、更灵活`喜欢`运算符或编写自己的应用程序级搜索算法。它使用 SQL 函数[`匹配（）`](fulltext-search.html#function_match)和**FULLTEXT 索引**.

也可以看看[全文索引](glossary.html#glos_fulltext_index).

[](<>)全文索引

[](<>)特殊的那种**指数**持有**搜索索引**在 MySQL 中**全文检索**机制。表示列值中的单词，省略任何指定为**停用词**.最初，仅适用于`MyISAM`表。从 MySQL 5.6.4 开始，它也可用于**InnoDB**表。

也可以看看[全文检索](glossary.html#glos_full_text_search),[指数](glossary.html#glos_index),[InnoDB](glossary.html#glos_innodb), [搜索索引](glossary.html#glos_search_index), [停用词](glossary.html#glos_stopword).

[](<>)模糊检查点

[](<>)一种技术**冲洗**小批量**脏页**来自**缓冲池**，而不是一次刷新所有脏页，这会中断数据库处理。

也可以看看[缓冲池](glossary.html#glos_buffer_pool), [脏页](glossary.html#glos_dirty_page), [冲洗](glossary.html#glos_flush).

### G

[](<>)遗传算法

[](<>)“普遍可用”，软件产品离开的阶段**测试版**并且可供销售、官方支持和生产使用。

也可以看看[测试版](glossary.html#glos_beta).

[](<>)广汽

[](<>)“全局程序集缓存”的首字母缩写。存放图书馆的中心区域(**集会**)在**网**系统物理上由嵌套文件夹组成，由**网**CLR。

另见[网](glossary.html#glos__net),[装配](glossary.html#glos_assembly).

[](<>)缺口

[](<>)一个地方`InnoDB` **指数**可以插入新值的数据结构。当使用以下语句锁定一组行时：`选择更新`,`InnoDB`可以创建应用于间隙以及索引中实际值的锁。例如，如果选择所有大于10的值进行更新，则间隙锁会阻止另一个事务插入大于10的新值。这个**上确界记录**和**下确界记录**表示包含大于或小于所有当前索引值的所有值的间隙。

另见[并发性](glossary.html#glos_concurrency),[间隙锁](glossary.html#glos_gap_lock),[指数](glossary.html#glos_index), [下确界记录](glossary.html#glos_infimum_record), [隔离级别](glossary.html#glos_isolation_level), [上确界记录](glossary.html#glos_supremum_record).

[](<>)间隙锁

[](<>)A.**锁**在**缺口**在索引记录之间，或者锁定第一个索引记录之前或最后一个索引记录之后的间隔。例如`从t中选择c1，其中c1介于10和20之间，用于更新；`防止其他事务在列中插入值15`t、 c1`，无论列中是否已存在任何此类值，因为该范围内所有现有值之间的间距都已锁定。对比**记录锁**和**下一把钥匙锁**.

间隙锁是性能和性能之间权衡的一部分**并发性**，并在某些事务中使用**隔离级别**而不是其他人。

另见[缺口](glossary.html#glos_gap), [下确界记录](glossary.html#glos_infimum_record), [锁](glossary.html#glos_lock), [下一把钥匙锁](glossary.html#glos_next_key_lock), [记录锁](glossary.html#glos_record_lock), [上确界记录](glossary.html#glos_supremum_record).

[](<>)一般日志

看见[一般查询日志](glossary.html#glos_general_query_log).

[](<>)一般查询日志

[](<>)一种**日志**用于MySQL服务器处理的SQL语句的诊断和故障排除。可以存储在文件或数据库表中。您必须通过[`一般日志`](server-system-variables.html#sysvar_general_log)配置选项来使用它。您可以通过[`sql_注销`](server-system-variables.html#sysvar_sql_log_off)配置选项。

记录的查询范围比**慢速查询日志**.不像**二进制日志**，用于复制，常规查询日志包含[`选择`](select.html)声明，不保持严格的顺序。有关更多信息，请参阅[第5.4.3节，“一般查询日志”](query-log.html).

另见[二进制日志](glossary.html#glos_binary_log), [日志](glossary.html#glos_log), [慢速查询日志](glossary.html#glos_slow_query_log).

[](<>)通用表空间

[](<>)共享的`InnoDB` **表空间**使用[`创建表空间`](create-tablespace.html)语法。通用表空间可以在MySQL数据目录之外创建，能够容纳多个**桌子**，并支持所有行格式的表。MySQL 5.7.6中引入了通用表空间。

使用以下命令将表添加到常规表空间[`创建表格*`tbl\_名称`* ... 表空间[=]*`表空间名称`*`](create-table.html)或[`改变桌子*`tbl\_名称`*表空间[=]*`表空间名称`*`](alter-table.html)语法。

对比**系统表空间**和**每个表的文件数**表空间。

有关更多信息，请参阅[第15.6.3.3节，“通用表空间”](general-tablespaces.html).

另见[每个表的文件数](glossary.html#glos_file_per_table), [系统表空间](glossary.html#glos_system_tablespace), [桌子](glossary.html#glos_table), [表空间](glossary.html#glos_tablespace).

[](<>)生成列

[](<>)根据列定义中包含的表达式计算其值的列。生成的列可以是**事实上的**或**存储**.

另见[基柱](glossary.html#glos_base_column), [存储生成列](glossary.html#glos_stored_generated_column), [虚拟生成列](glossary.html#glos_virtual_generated_column).

[](<>)生成的存储列

看见[存储生成列](glossary.html#glos_stored_generated_column).

[](<>)生成的虚拟列

看见[虚拟生成列](glossary.html#glos_virtual_generated_column).

[](<>)玻璃鱼

[](<>)

另见[J2EE](glossary.html#glos_j2ee).

[](<>)全局临时表空间

[](<>)A.*临时表空间*那个商店*回滚段*用于更改用户创建的临时表。

另见[临时表空间](glossary.html#glos_temporary_tablespace).

[](<>)全球交易

[](<>)一种**交易**卷入**XA**操作。它由几个本身是事务性的操作组成，但所有操作要么作为一个组成功完成，要么作为一个组回滚。从本质上讲，这是一种延伸**酸的**属性“上一级”，以便多个ACID事务可以作为也具有ACID属性的全局操作的组件协同执行。

另见[酸的](glossary.html#glos_acid), [交易](glossary.html#glos_transaction), [XA](glossary.html#glos_xa).

[](<>)集体提交

[](<>)一`InnoDB`对一组数据执行一次低级I/O操作（日志写入）的优化**犯罪**操作，而不是每次提交都单独刷新和同步。

另见[二进制日志](glossary.html#glos_binary_log), [犯罪](glossary.html#glos_commit).

[](<>)指南

[](<>)“全球唯一标识符”的首字母缩写，这是一个ID值，可用于跨不同数据库、语言、操作系统等关联数据。（作为使用顺序整数的替代方法，在顺序整数中，相同的值可能出现在不同的表、数据库等中，以引用不同的数据。）较旧的MySQL版本将其表示为`二进制（16）`.目前，其代表为`查尔（36）`.MySQL有一个`UUID（）`以字符格式返回GUID值的函数，以及`UUID_SHORT（）`函数，该函数以整数格式返回GUID值。因为连续的GUID值不一定按升序排序，所以对于大型InnoDB表来说，它不是一个有效的主键值。

### H

[](<>)散列索引

[](<>)一种**指数**用于使用相等运算符而不是范围运算符（如大于或）的查询`之间`.可供[`记忆力`](memory-storage-engine.html)桌子。虽然哈希索引是[`记忆力`](memory-storage-engine.html)由于历史原因，该存储引擎还支持**B-树**索引，这通常是通用查询的更好选择。

MySQL包含这种索引类型的一个变体**自适应哈希索引**，它是为[`InnoDB`](innodb-storage-engine.html)表（如果需要）基于运行时条件。

另见[自适应哈希索引](glossary.html#glos_adaptive_hash_index), [B-树](glossary.html#glos_b_tree), [指数](glossary.html#glos_index), [InnoDB](glossary.html#glos_innodb).

[](<>)硬盘驱动器

[](<>)“硬盘”的缩写。指使用旋转盘片的存储介质，通常用于与**固态硬盘**.其性能特征会影响网络的吞吐量**基于磁盘的**工作量

另见[基于磁盘的](glossary.html#glos_disk_based), [固态硬盘](glossary.html#glos_ssd).

[](<>)心跳

[](<>)一种周期性的信息，用来表明系统运行正常。在一个**复制**上下文，如果**来源**停止发送此类消息，其中一个**复制品**可以取而代之。在集群环境中，可以在服务器之间使用类似的技术，以确认所有服务器都正常运行。

另见[复制](glossary.html#glos_replication), [来源](glossary.html#glos_source).

[](<>)高水位线

[](<>)表示上限的值，可以是运行时不应超过的硬限制，也可以是实际达到的最大值的记录。对比**低水位线**.

另见[低水位线](glossary.html#glos_low_water_mark).

[](<>)历史记录列表

[](<>)名单**交易**删除计划由`InnoDB` **净化**活动记录在**撤消日志**。历史记录列表的长度由命令报告`显示引擎INNODB状态`.如果历史记录列表的长度超过[`innodb_max_purge_lag`](innodb-parameters.html#sysvar_innodb_max_purge_lag)配置选项，每个**DML**操作稍微延迟，以允许吹扫操作完成**法拉盛**删除的记录。

也称为**净化滞后**.

另见[DML](glossary.html#glos_dml), [脸红](glossary.html#glos_flush), [净化](glossary.html#glos_purge), [净化滞后](glossary.html#glos_purge_lag), [回滚段](glossary.html#glos_rollback_segment), [交易](glossary.html#glos_transaction), [撤消日志](glossary.html#glos_undo_log).

[](<>)打洞技术

[](<>)从页面中释放空块。这个`InnoDB` **透明页面压缩**该功能依赖于打孔支撑。有关更多信息，请参阅[第15.9.2节，“InnoDB页面压缩”](innodb-page-compression.html).

另见[稀疏档案](glossary.html#glos_sparse_file), [透明页面压缩](glossary.html#glos_transparent_page_compression).

[](<>)主办

[](<>)数据库服务器的网络名称，用于建立**联系**.通常与**港口城市**.在某些情况下，IP地址`127.0.0.1`比特殊名称更有效`本地服务器`用于访问与应用程序位于同一服务器上的数据库。

另见[联系](glossary.html#glos_connection), [本地服务器](glossary.html#glos_localhost), [港口城市](glossary.html#glos_port).

[](<>)热的

[](<>)一种情况，行、表或内部数据结构被频繁访问，需要某种形式的锁定或互斥，从而导致性能或可伸缩性问题。

虽然“热”通常表示不良状况，但**热备份**是首选的备份类型。

另见[热备份](glossary.html#glos_hot_backup).

[](<>)热备份

[](<>)在数据库运行以及应用程序对其进行读写时进行的备份。备份涉及的不仅仅是复制数据文件：它必须包括备份过程中插入或更新的任何数据；它必须排除备份过程中删除的任何数据；它必须忽略任何未提交的更改。

例如，执行热备份的Oracle产品`InnoDB`特别是桌子，但也有来自`米萨姆`和其他存储引擎，被称为**MySQL企业备份**.

热备份过程包括两个阶段。数据文件的初始复制会产生**原始备份**这个**申请**步骤包含备份运行时对数据库所做的任何更改。应用这些更改会产生一个**准备好**备份这些文件随时可以在必要时恢复。

另见[申请](glossary.html#glos_apply), [MySQL企业备份](glossary.html#glos_mysql_enterprise_backup), [准备好的备份](glossary.html#glos_prepared_backup), [原始备份](glossary.html#glos_raw_backup).

### 我

[](<>).ibd文件

[](<>)的数据文件**每个表的文件数**表空间和常规表空间。每个表的文件表空间`.传染性法氏囊病`文件包含一个表和关联的索引数据。**通用表空间** `.传染性法氏囊病`文件可能包含多个表的表和索引数据。

这个`.传染性法氏囊病`文件扩展名不适用于**系统表空间**，它由一个或多个**ibdata文件**.

如果使用`数据目录=`条款`.传染性法氏囊病`文件位于指定的路径，在正常数据目录之外。

当`.传染性法氏囊病`文件包含在压缩备份中**MySQL企业备份**产品，压缩等效物是`ibz先生`文件

另见[数据库](glossary.html#glos_database), [每个表的文件数](glossary.html#glos_file_per_table), [通用表空间](glossary.html#glos_general_tablespace), [ibdata文件](glossary.html#glos_ibdata_file), [.ibz文件](glossary.html#glos_ibz_file), [innodb\_文件\_每\_桌子](glossary.html#glos_innodb_file_per_table), [MySQL企业备份](glossary.html#glos_mysql_enterprise_backup), [系统表空间](glossary.html#glos_system_tablespace).

[](<>).ibz文件

[](<>)当**MySQL企业备份**该产品性能良好**压缩备份**，它会改变每一个**表空间**使用**每个表的文件数**从一个`.传染性法氏囊病`扩展到`ibz先生`扩大

备份期间应用的压缩不同于**压缩行格式**这样可以在正常操作期间压缩表数据。对于已经是压缩行格式的表空间，压缩备份操作会跳过压缩步骤，因为第二次压缩会降低备份速度，但几乎不会节省空间。

另见[压缩备份](glossary.html#glos_compressed_backup), [压缩行格式](glossary.html#glos_compressed_row_format), [每个表的文件数](glossary.html#glos_file_per_table), [.ibd文件](glossary.html#glos_ibd_file), [MySQL企业备份](glossary.html#glos_mysql_enterprise_backup), [表空间](glossary.html#glos_tablespace).

[](<>)I/O绑定

看见[磁盘绑定](glossary.html#glos_disk_bound).

[](<>)ib文件集

[](<>)由管理的文件集`InnoDB`在MySQL数据库中：**系统表空间**, **每个表的文件数**表空间文件，以及**重做日志文件**文件夹。取决于MySQL版本和`InnoDB`配置，也可能包括**通用表空间**, **临时表空间**和**撤销表空间**文件夹。这一术语有时用于详细讨论`InnoDB`文件结构和格式指的是由`InnoDB`在MySQL数据库中。

另见[数据库](glossary.html#glos_database), [每个表的文件数](glossary.html#glos_file_per_table), [通用表空间](glossary.html#glos_general_tablespace), [重做日志文件](glossary.html#glos_redo_log), [系统表空间](glossary.html#glos_system_tablespace), [临时表空间](glossary.html#glos_temporary_tablespace), [撤销表空间](glossary.html#glos_undo_tablespace).

[](<>)ibbackup\_日志文件

[](<>)由**MySQL企业备份**产品在**热备份**活动它包含有关备份运行时发生的任何数据更改的信息。初始备份文件，包括`ibu日志文件`，被称为**原始备份**，因为备份操作期间发生的更改尚未合并。在你表演完之后**申请**到原始备份文件，生成的文件确实包含这些最终数据更改，称为**准备好的备份**.在现阶段`ibu日志文件`文件不再是必需的。

另见[申请](glossary.html#glos_apply), [热备份](glossary.html#glos_hot_backup), [MySQL企业备份](glossary.html#glos_mysql_enterprise_backup), [准备好的备份](glossary.html#glos_prepared_backup), [原始备份](glossary.html#glos_raw_backup).

[](<>)ibdata文件

[](<>)一组名为`ibdata1`, `ibdata2`，等等，它们构成了`InnoDB` **系统表空间**。获取有关驻留在系统表空间中的结构和数据的信息`ibdata`文件，参见[第15.6.3.1节，“系统表空间”](innodb-system-tablespace.html).

经济增长`ibdata`文件受[`innodb_自动扩展_增量`](innodb-parameters.html#sysvar_innodb_autoextend_increment)配置选项。

另见[更换缓冲区](glossary.html#glos_change_buffer), [数据字典](glossary.html#glos_data_dictionary), [双写缓冲区](glossary.html#glos_doublewrite_buffer), [每个表的文件数](glossary.html#glos_file_per_table), [.ibd文件](glossary.html#glos_ibd_file), [innodb\_文件\_每\_桌子](glossary.html#glos_innodb_file_per_table), [系统表空间](glossary.html#glos_system_tablespace), [撤消日志](glossary.html#glos_undo_log).

[](<>)ibtmp文件

[](<>)这个`InnoDB` **临时表空间** **数据文件**对于非压缩`InnoDB` **临时桌子**以及相关物品。配置文件选项，[`innodb_temp_data_file_path`](innodb-parameters.html#sysvar_innodb_temp_data_file_path)，允许用户定义临时表空间数据文件的相对路径。如果[`innodb_temp_data_file_path`](innodb-parameters.html#sysvar_innodb_temp_data_file_path)如果未指定，则默认行为是创建一个名为`ibtmp1`在数据目录中`ibdata1`.

另见[数据文件](glossary.html#glos_data_files), [临时桌](glossary.html#glos_temporary_table), [临时表空间](glossary.html#glos_temporary_tablespace).

[](<>)ib\_日志文件

[](<>)一组文件，通常命名为`ib_logfile0`和`ib_日志文件1`，这就是**重做日志文件**.有时也称为**日志组**。这些文件记录了试图在中更改数据的语句`InnoDB`桌子。在崩溃后启动时，这些语句会自动重放，以更正不完整事务写入的数据。

此数据不能用于手动恢复；对于这种类型的操作，请使用**二进制日志**.

另见[二进制日志](glossary.html#glos_binary_log), [日志组](glossary.html#glos_log_group), [重做日志文件](glossary.html#glos_redo_log).

[](<>)伊利斯特

[](<>)在一分钟内`InnoDB` **全文索引**，由文档ID和标记（即特定单词）的位置信息组成的数据结构。

另见[全文索引](glossary.html#glos_fulltext_index).

[](<>)隐式行锁

[](<>)一排锁`InnoDB`获取以确保一致性，而无需您特别要求。

另见[排锁](glossary.html#glos_row_lock).

[](<>)内存数据库

[](<>)一种数据库系统，将数据保存在内存中，以避免由于磁盘I/O和磁盘块与内存区之间的转换而产生的开销。一些内存数据库牺牲了耐久性（数据库中的“D”）**酸的**并且易受硬件、电源和其他类型故障的影响，使其更适合只读操作。其他内存中的数据库确实使用了持久性机制，比如将更改记录到磁盘或使用非易失性内存。

MySQL解决了同样类型的内存密集型处理的功能包括`InnoDB` **缓冲池**, **自适应哈希索引**和**只读事务**优化[`记忆力`](memory-storage-engine.html)存储引擎`米萨姆`密钥缓存和MySQL查询缓存。

另见[酸的](glossary.html#glos_acid), [自适应哈希索引](glossary.html#glos_adaptive_hash_index), [缓冲池](glossary.html#glos_buffer_pool), [基于磁盘的](glossary.html#glos_disk_based), [只读事务](glossary.html#glos_read_only_transaction).

[](<>)增量备份

[](<>)一种**热备份**，由**MySQL企业备份**产品，只保存自某个时间点以来更改的数据。有了完整备份和一系列增量备份，您可以在很长一段时间内重建备份数据，而无需保留多个完整备份的存储开销。您可以恢复完整备份，然后依次应用每个增量备份，也可以通过对其应用每个增量备份来保持完整备份的最新状态，然后执行单个恢复操作。

已更改数据的粒度在**页**数量一页实际上可能包含多行内容。每个更改的页面都包含在备份中。

另见[热备份](glossary.html#glos_hot_backup), [MySQL企业备份](glossary.html#glos_mysql_enterprise_backup), [页](glossary.html#glos_page).

[](<>)指数

[](<>)一种数据结构，可为**排**一个**桌子**，通常通过形成树结构(**B-树）**代表某一特定事物的所有价值**柱**或一组列。

`InnoDB`桌子上总是有一张桌子**聚集索引**代表**主键**.他们也可以有一个或多个**二级索引**在一个或多个列上定义。根据其结构，二级索引可分为**部分的**, **柱**或**混合成的**索引。

索引是数据的一个关键方面**查询**表演数据库架构师设计表、查询和索引，以允许快速查找应用程序所需的数据。理想的数据库设计使用**覆盖指数**在可行的情况下；查询结果完全根据索引计算，而不读取实际的表数据。每个**外键**约束还需要一个索引，以有效地检查两个**父母亲**和**小孩**桌子。

虽然B-树索引是最常见的，但用于索引的数据结构不同**使用散列索引**，如`记忆力`存储引擎和`InnoDB` **自适应哈希索引**. **R-树**索引用于多维信息的空间索引。

另见[自适应哈希索引](glossary.html#glos_adaptive_hash_index), [B-树](glossary.html#glos_b_tree), [子表](glossary.html#glos_child_table), [聚集索引](glossary.html#glos_clustered_index), [列索引](glossary.html#glos_column_index), [综合指数](glossary.html#glos_composite_index), [覆盖指数](glossary.html#glos_covering_index), [外键](glossary.html#glos_foreign_key), [散列索引](glossary.html#glos_hash_index), [父表](glossary.html#glos_parent_table), [部分索引](glossary.html#glos_partial_index), [主键](glossary.html#glos_primary_key), [查询](glossary.html#glos_query), [R-树](glossary.html#glos_r_tree), [一行](glossary.html#glos_row), [二级索引](glossary.html#glos_secondary_index), [桌子](glossary.html#glos_table).

[](<>)索引缓存

[](<>)一种存储区，用于保存用于存储的令牌数据`InnoDB` **全文检索**。当数据被插入或更新到属于磁盘的列中时，它会缓冲数据，以最小化磁盘I/O**全文索引**。当索引缓存变满时，令牌数据将写入磁盘。每个`InnoDB` `全文`索引有自己单独的索引缓存，其大小由配置选项控制[`innodb_ft_缓存_大小`](innodb-parameters.html#sysvar_innodb_ft_cache_size).

另见[全文检索](glossary.html#glos_full_text_search), [全文索引](glossary.html#glos_fulltext_index).

[](<>)索引条件下推

[](<>)索引条件下推（ICP）是一种优化，它推送`哪里`如果可以使用**指数**.ICP可以减少**存储引擎**必须访问基表以及MySQL服务器必须访问存储引擎的次数。有关更多信息，请参阅[第8.2.1.6节，“指数条件下推优化”](index-condition-pushdown-optimization.html).

另见[指数](glossary.html#glos_index), [存储引擎](glossary.html#glos_storage_engine).

[](<>)索引提示

[](<>)用于重写**索引**由优化器推荐。例如`力指数`, `使用索引`和`忽略索引`条款。通常在索引列的值分布不均匀时使用，导致不准确**基数**估计。

另见[基数](glossary.html#glos_cardinality), [指数](glossary.html#glos_index).

[](<>)索引前缀

[](<>)在一个**指数**这适用于多个列（称为**综合指数**)，索引的起始列或前导列。引用复合索引的前1、2、3等列的查询可以使用该索引，即使该查询没有引用索引中的所有列。

另见[综合指数](glossary.html#glos_composite_index), [指数](glossary.html#glos_index).

[](<>)指数统计

看见[统计数字](glossary.html#glos_statistics).

[](<>)下确界记录

[](<>)A.**伪记录**在一个**指数**，代表**缺口**低于该指数中的最小值。如果事务具有以下语句：`选择从…起其中col<10表示更新；`，列中的最小值为5，它是对下确界记录的锁定，防止其他事务插入更小的值，例如0、-10等等。

另见[缺口](glossary.html#glos_gap), [指数](glossary.html#glos_index), [伪记录](glossary.html#glos_pseudo_record), [上确界记录](glossary.html#glos_supremum_record).

[](<>)信息\_模式

[](<>)那个人的名字**数据库**这为MySQL提供了一个查询接口**数据字典**（该名称由ANSI SQL标准定义。）要检查有关数据库的信息（元数据），可以查询以下表：`信息模式。桌子`和`信息模式。柱`，而不是使用`显示`生成非结构化输出的命令。

这个`信息模式`数据库还包含特定于**InnoDB**为`InnoDB`数据字典。使用这些表不是为了查看数据库的结构，而是为了获取有关数据库工作的实时信息`InnoDB`用于帮助进行性能监视、调优和故障排除的表。

另见[数据字典](glossary.html#glos_data_dictionary), [数据库](glossary.html#glos_database), [InnoDB](glossary.html#glos_innodb).

[](<>)InnoDB

[](<>)一个MySQL组件，将高性能与**交易的**可靠性、健壮性和并发访问能力。它体现了**酸的**设计理念。代表为**存储引擎**; 它处理使用创建或更改的表`引擎=INNODB`条款看见[第15章，*InnoDB存储引擎*](innodb-storage-engine.html)建筑细节和管理程序，以及[第8.5节，“优化InnoDB表”](optimizing-innodb.html)获取性能建议。

在MySQL 5.5及更高版本中，`InnoDB`是新表和`引擎=INNODB`条款不是必需的。

`InnoDB`桌子非常适合你**热备份**看见[第30.2节，“MySQL企业备份概述”](mysql-enterprise-backup.html)有关**MySQL企业备份**用于在不中断正常处理的情况下备份MySQL服务器的产品。

另见[酸的](glossary.html#glos_acid), [热备份](glossary.html#glos_hot_backup), [MySQL企业备份](glossary.html#glos_mysql_enterprise_backup), [存储引擎](glossary.html#glos_storage_engine), [交易](glossary.html#glos_transaction).

[](<>)innodb\_汽车公司\_锁\_模式

[](<>)这个[`innodb_autoinc_锁定模式`](innodb-parameters.html#sysvar_innodb_autoinc_lock_mode)选项控制用于**自动增量锁定**.当你有一个自动递增的**主键**，则只能在设置的情况下使用基于语句的复制[`innodb_autoinc_lock_mode=1`](innodb-parameters.html#sysvar_innodb_autoinc_lock_mode)。此设置称为*连续的*锁定模式，因为事务中的多行插入会接收连续的自动增量值。如果你有[`innodb_autoinc_lock_mode=2`](innodb-parameters.html#sysvar_innodb_autoinc_lock_mode)，它允许插入操作具有更高的并发性，使用基于行的复制而不是基于语句的复制。此设置称为*交错的*锁定模式，因为同时运行的多个多行insert语句可以接收**自动增量**交错的值。背景[`innodb_autoinc_lock_mode=0`](innodb-parameters.html#sysvar_innodb_autoinc_lock_mode)除非出于兼容性目的，否则不应使用。

连续锁定模式([`innodb_autoinc_lock_mode=1`](innodb-parameters.html#sysvar_innodb_autoinc_lock_mode))是MySQL 8.0.3之前的默认设置。从MySQL 8.0.3开始，交错锁模式([`innodb_autoinc_lock_mode=2`](innodb-parameters.html#sysvar_innodb_autoinc_lock_mode))是默认值，它反映了默认复制类型从基于语句的复制到基于行的复制的变化。

另见[自动增量](glossary.html#glos_auto_increment), [自动增量锁定](glossary.html#glos_auto_increment_locking), [混合模式插入](glossary.html#glos_mixed_mode_insert), [主键](glossary.html#glos_primary_key).

[](<>)innodb\_文件\_每\_桌子

[](<>)这是一个重要的配置选项，它会影响系统的许多方面`InnoDB`文件存储、功能可用性和I/O特性。在MySQL 5.6.7及更高版本中，默认情况下会启用它。这个[`innodb_文件_每个_表`](innodb-parameters.html#sysvar_innodb_file_per_table)选项打开**每个表的文件数**模式启用此模式后，新创建的`InnoDB`表和相关索引可以存储在每个表的文件中**.ibd文件**，在**系统表空间**.

此选项会影响许多SQL语句的性能和存储注意事项，例如[`升降台`](drop-table.html)和[`截断表`](truncate-table.html).

启用[`innodb_文件_每个_表`](innodb-parameters.html#sysvar_innodb_file_per_table)选项允许您利用表格等功能**压缩**和中的命名表备份**MySQL企业备份**.

有关更多信息，请参阅[`innodb_文件_每个_表`](innodb-parameters.html#sysvar_innodb_file_per_table)和[第15.6.3.2节，“每个表的文件表空间”](innodb-file-per-table-tablespaces.html).

另见[压缩](glossary.html#glos_compression), [每个表的文件数](glossary.html#glos_file_per_table), [.ibd文件](glossary.html#glos_ibd_file), [MySQL企业备份](glossary.html#glos_mysql_enterprise_backup), [系统表空间](glossary.html#glos_system_tablespace).

[](<>)innodb\_锁\_等待\_暂停

[](<>)这个[`innodb\u锁定\u等待\u超时`](innodb-parameters.html#sysvar_innodb_lock_wait_timeout)选项设置两者之间的平衡**等待**使共享资源可用，或放弃并处理错误，重试，或在应用程序中进行替代处理。回滚任何`InnoDB`等待超过指定时间以获取数据的事务**锁**.特别有用，如果**僵局**是由不同存储引擎控制的多个表的更新引起的；这样的僵局并不存在**检测**自动地

另见[僵局](glossary.html#glos_deadlock), [死锁检测](glossary.html#glos_deadlock_detection), [锁](glossary.html#glos_lock), [等待](glossary.html#glos_wait).

[](<>)innodb\_严格的\_模式

[](<>)这个[`innodb_严格模式`](innodb-parameters.html#sysvar_innodb_strict_mode)选项控制是否`InnoDB`经营于**严格模式**，通常被视为警告的条件反而会导致错误（而基础语句失败）。

另见[严格模式](glossary.html#glos_strict_mode).

[](<>)插入

[](<>)主要原因之一**DML**行动**SQL**.插入件的性能是**数据仓库**将数百万行加载到表中的系统**OLTP**多个并发连接可能以任意顺序将行插入同一个表的系统。如果插入性能对您很重要，您应该了解**InnoDB**功能，例如**插入缓冲区**用于**更改缓冲**和**自动增量**柱。

另见[自动增量](glossary.html#glos_auto_increment), [更改缓冲](glossary.html#glos_change_buffering), [数据仓库](glossary.html#glos_data_warehouse), [DML](glossary.html#glos_dml), [InnoDB](glossary.html#glos_innodb), [插入缓冲区](glossary.html#glos_insert_buffer), [OLTP](glossary.html#glos_oltp), [SQL](glossary.html#glos_sql).

[](<>)插入缓冲区

[](<>)前总统的名字**更换缓冲区**.在MySQL 5.5中，增加了对缓存对[`删去`](delete.html)和[`使现代化`](update.html)操作。以前，只有[`插入`](insert.html)操作被缓冲。首选术语是“现在”*更换缓冲区*.

另见[更换缓冲区](glossary.html#glos_change_buffer), [更改缓冲](glossary.html#glos_change_buffering).

[](<>)插入缓冲

[](<>)存储对辅助索引页的更改的技术，这些更改是由[`插入`](insert.html)行动，在**更换缓冲区**而不是立即写入更改，以便可以执行物理写入以最小化随机I/O。这是一种**更改缓冲**; 其他的是**删除缓冲**和**清除缓冲**.

如果次索引为空，则不使用插入缓冲**唯一的**，因为在写入新条目之前无法验证新值的唯一性。其他类型的更改缓冲也适用于唯一索引。

另见[更换缓冲区](glossary.html#glos_change_buffer), [更改缓冲](glossary.html#glos_change_buffering), [删除缓冲](glossary.html#glos_delete_buffering), [插入缓冲区](glossary.html#glos_insert_buffer), [清除缓冲](glossary.html#glos_purge_buffering), [唯一索引](glossary.html#glos_unique_index).

[](<>)插入意向锁

[](<>)一种**间隙锁**这是由[`插入`](insert.html)行插入之前的操作。这种**锁**表明插入的意图，如果插入到同一索引间隙中的多个事务没有插入到间隙中的同一位置，则它们不需要等待彼此。有关更多信息，请参阅[第15.7.1节“InnoDB锁定”](innodb-locking.html).

另见[间隙锁](glossary.html#glos_gap_lock), [锁](glossary.html#glos_lock), [下一把钥匙锁](glossary.html#glos_next_key_lock).

[](<>)例子

[](<>)单人间**mysqld**守护进程管理**数据目录**代表一个或多个**数据库**带着一套**桌子**.这在开发、测试和一些应用程序中很常见**复制**在同一平台上有多个实例的场景**服务器**每台机器都管理自己的数据目录，并监听自己的端口或套接字。其中一个实例运行**磁盘绑定**服务器可能仍有额外的CPU和内存容量来运行其他实例。

另见[数据目录](glossary.html#glos_data_directory), [数据库](glossary.html#glos_database), [磁盘绑定](glossary.html#glos_disk_bound), [mysqld](glossary.html#glos_mysqld), [复制](glossary.html#glos_replication), [服务器](glossary.html#glos_server), [桌子](glossary.html#glos_table).

[](<>)仪器仪表

[](<>)在源代码级别进行修改，以收集性能数据进行调优和调试。在MySQL中，通过使用`信息模式`和`性能模式`数据库。

另见[信息\_模式](glossary.html#glos_information_schema), [性能模式](glossary.html#glos_performance_schema).

[](<>)专用锁

看见[意向锁](glossary.html#glos_intention_lock).

[](<>)意向锁

[](<>)一种**锁**这适用于表，用于指示锁的类型**交易**打算在表中的行上获取。不同的事务可以在同一个表上获取不同类型的意向锁，但第一个获取意向锁的事务*意图专属*（九） 表上的锁防止其他事务获取表上的任何S或X锁。相反，第一笔获得*共同的意图*（IS）表上的锁防止其他事务获取表上的任何X锁。两阶段流程允许按顺序解析锁请求，而不会阻塞兼容的锁和相应操作。有关此锁定机制的更多信息，请参阅[第15.7.1节“InnoDB锁定”](innodb-locking.html).

另见[锁](glossary.html#glos_lock), [锁定模式](glossary.html#glos_lock_mode), [锁定](glossary.html#glos_locking), [交易](glossary.html#glos_transaction).

[](<>)意图共享锁

看见[意向锁](glossary.html#glos_intention_lock).

[](<>)拦截器

[](<>)用于检测或调试应用程序某些方面的代码，无需重新编译或更改应用程序本身的源代码即可启用。

另见[命令拦截器](glossary.html#glos_command_interceptor), [连接器/J](glossary.html#glos_connector_j),[连接器/网络](glossary.html#glos_connector_net),[异常拦截器](glossary.html#glos_exception_interceptor).

[](<>)内在临时表

[](<>)优化的内部`InnoDB`使用的临时表*优化器*.

也可以看看[优化器](glossary.html#glos_optimizer).

[](<>)倒排索引

[](<>)一种针对文档检索系统优化的数据结构，用于实现`InnoDB` **全文检索**.这`InnoDB` **全文索引**，实现为倒排索引，记录文档中每个单词的位置，而不是表格行的位置。单个列值（存储为文本字符串的文档）由倒排索引中的许多条目表示。

也可以看看[全文检索](glossary.html#glos_full_text_search),[全文索引](glossary.html#glos_fulltext_index),[列表](glossary.html#glos_ilist).

[](<>)IOPS

[](<>)首字母缩略词**每秒 I/O 操作**.繁忙系统的常用测量方法，尤其是**OLTP**应用程序。如果此值接近存储设备可以处理的最大值，则应用程序可以变为**磁盘绑定**, 限制**可扩展性**.

也可以看看[磁盘绑定](glossary.html#glos_disk_bound),[OLTP](glossary.html#glos_oltp),[可扩展性](glossary.html#glos_scalability).

[](<>)隔离级别

[](<>)数据库处理的基础之一。隔离是**一世**在首字母缩略词中**酸**;隔离级别是在性能与结果的可靠性、一致性和可重复性之间微调平衡的设置，当多个**交易**正在同时进行更改和执行查询。

从最高的一致性和保护到最低，InnoDB 支持的隔离级别是：**可序列化**,**可重复阅读**,**阅读已提交**， 和**阅读未提交**.

和`InnoDB`表，许多用户可以保持默认的隔离级别（*可重复阅读*) 用于所有操作。专家用户可能会选择**阅读已提交**水平，因为他们推动了可扩展性的界限**OLTP**处理，或在数据仓库操作期间，轻微的不一致不会影响大量数据的聚合结果。边缘的水平（**可序列化**和**阅读未提交**) 将处理行为改变到很少使用的程度。

也可以看看[酸](glossary.html#glos_acid),[OLTP](glossary.html#glos_oltp),[阅读已提交](glossary.html#glos_read_committed),[阅读未提交](glossary.html#glos_read_uncommitted),[可重复阅读](glossary.html#glos_repeatable_read),[可序列化](glossary.html#glos_serializable),[交易](glossary.html#glos_transaction).

### Ĵ

[](<>)J2EE

[](<>)Java Platform, Enterprise Edition：Oracle 的企业 Java 平台。它由一个 API 和一个用于企业级 Java 应用程序的运行时环境组成。有关完整详细信息，请参阅<http://www.oracle.com/technetwork/java/javaee/overview/index.html>.对于 MySQL 应用程序，您通常使用**连接器/J**用于数据库访问，以及应用服务器，例如**雄猫**要么**老板**处理中间层工作，以及可选的框架，例如**春天**.J2EE 堆栈中经常提供的与数据库相关的特性包括**连接池**和**故障转移**支持。

也可以看看[连接池](glossary.html#glos_connection_pool),[连接器/J](glossary.html#glos_connector_j),[故障转移](glossary.html#glos_failover),[爪哇](glossary.html#glos_java),[老板](glossary.html#glos_jboss),[春天](glossary.html#glos_spring),[雄猫](glossary.html#glos_tomcat).

[](<>)爪哇

[](<>)一种结合了高性能、丰富的内置特性和数据类型、面向对象的机制、广泛的标准库和广泛的可重用第三方模块的编程语言。许多框架、应用程序服务器和其他技术都支持企业开发。它的大部分语法是熟悉的**C**和**C++**开发商。要使用 MySQL 编写 Java 应用程序，您可以使用**JDBC**司机被称为**连接器/J**.

也可以看看[C](glossary.html#glos_c),[连接器/J](glossary.html#glos_connector_j),[C++](glossary.html#glos_cplusplus),[JDBC](glossary.html#glos_jdbc).

[](<>)老板

[](<>)

也可以看看[J2EE](glossary.html#glos_j2ee).

[](<>)JDBC

[](<>)“Java 数据库连接”的缩写，一个**API**用于从数据库访问**爪哇**应用程序。编写 MySQL 应用程序的 Java 开发人员使用**连接器/J**组件作为他们的 JDBC 驱动程序。

也可以看看[API](glossary.html#glos_api),[连接器/J](glossary.html#glos_connector_j),[J2EE](glossary.html#glos_j2ee),[爪哇](glossary.html#glos_java).

[](<>)JNDI

[](<>)

也可以看看[爪哇](glossary.html#glos_java).

[](<>)加入

[](<>)一种**询问**通过引用包含相同值的表中的列，从多个表中检索数据。理想情况下，这些列是`InnoDB` **外键**关系，从而确保**参照完整性**并且连接列是**索引**.通常用于通过用数字 ID 替换重复的字符串来节省空间和提高查询性能，在**归一化**数据设计。

也可以看看[外键](glossary.html#glos_foreign_key), [指数](glossary.html#glos_index), [归一化](glossary.html#glos_normalized), [询问](glossary.html#glos_query), [参照完整性](glossary.html#glos_referential_integrity).

### ķ

[](<>)KDC

看[关键配送中心](glossary.html#glos_key_distribution_center).

[](<>)关键配送中心

[](<>)在 Kerberos 中，密钥分发中心包括一个身份验证服务器 (AS) 和一个票证授予服务器 (TGS)。

也可以看看[认证服务器](glossary.html#glos_authentication_server), [票证](glossary.html#glos_ticket_granting_ticket).

[](<>)密钥库

[](<>)

也可以看看[SSL](glossary.html#glos_ssl).

[](<>)钥匙\_堵塞\_尺寸

[](<>)用于指定数据页大小的选项`InnoDB`使用的表**压缩行格式**.默认值为 8 KB。较低的值有可能达到内部限制，这取决于行大小和压缩百分比的组合。

为了[`MyISAM`](myisam-storage-engine.html)表，`KEY_BLOCK_SIZE`可选地指定用于索引键块的大小（以字节为单位）。该值被视为提示；如有必要，可以使用不同的尺寸。一种`KEY_BLOCK_SIZE`为单个索引定义指定的值覆盖表级别`KEY_BLOCK_SIZE`价值。

也可以看看[压缩行格式](glossary.html#glos_compressed_row_format).

### 大号

[](<>)闩锁

[](<>)使用的轻量级结构`InnoDB`实施一个**锁**对于它自己的内部存储器结构，通常保持以毫秒或微秒为单位的短暂时间。包括两者的通用术语**互斥体**（用于独占访问）和**rw锁**（用于共享访问）。某些闩锁是重点`InnoDB`性能调优。有关闩锁使用和争用的统计信息可通过**性能模式**界面。

也可以看看[锁](glossary.html#glos_lock),[锁定](glossary.html#glos_locking),[互斥体](glossary.html#glos_mutex),[性能模式](glossary.html#glos_performance_schema),[rw锁](glossary.html#glos_rw_lock).

[](<>)库mysql

[](<>)的非正式名称**libmysql客户端**图书馆。

也可以看看[libmysql客户端](glossary.html#glos_libmysqlclient).

[](<>)libmysql客户端

[](<>)库文件，名为`libmysqlclient.a`要么`libmysqlclient.so`，这通常链接到**客户**编写的程序**C**.有时非正式地称为**库mysql**或者**mysql客户端**图书馆。

也可以看看[客户](glossary.html#glos_client),[库mysql](glossary.html#glos_libmysql),[mysql客户端](glossary.html#glos_mysqlclient).

[](<>)库mysqld

[](<>)这**嵌入式**MySQL 服务器库使得在一个内部运行一个全功能的 MySQL 服务器成为可能**客户**应用。主要好处是嵌入式应用程序的速度提高和管理更简单。您与`库mysqld`图书馆而不是**libmysql客户端**.这三个库之间的 API 是相同的。

也可以看看[客户](glossary.html#glos_client),[嵌入式](glossary.html#glos_embedded),[库mysql](glossary.html#glos_libmysql),[libmysql客户端](glossary.html#glos_libmysqlclient).

[](<>)生命周期拦截器

[](<>)一种**拦截器**支持**连接器/J**.它涉及实现接口`com.mysql.jdbc.ConnectionLifecycleInterceptor`.

也可以看看[连接器/J](glossary.html#glos_connector_j),[拦截器](glossary.html#glos_interceptor).

[](<>)列表

[](<>)这`InnoDB` **缓冲池**表示为内存列表**页面**.随着新页面被访问并进入缓冲池，该列表被重新排序，因为缓冲池中的页面被再次访问并被认为是更新的，并且长时间没有被访问的页面被认为是更新的。**被驱逐**从缓冲池中。缓冲池分为**子列表**，并且替换策略是熟悉的变体**LRU**技术。

也可以看看[缓冲池](glossary.html#glos_buffer_pool),[驱逐](glossary.html#glos_eviction),[LRU](glossary.html#glos_lru),[页](glossary.html#glos_page),[子列表](glossary.html#glos_sublist).

[](<>)负载均衡

[](<>)一种通过向复制或集群配置中的不同从属服务器发送查询请求来扩展只读连接的技术。和**连接器/J**，负载平衡是通过启用`com.mysql.jdbc.ReplicationDriver`类并由配置属性控制`负载平衡策略`.

也可以看看[连接器/J](glossary.html#glos_connector_j),[J2EE](glossary.html#glos_j2ee).

[](<>)本地主机

[](<>)

也可以看看[联系](glossary.html#glos_connection).

[](<>)锁

[](<>)控制对资源（例如表、行或内部数据结构）的访问的对象的高级概念，作为**锁定**战略。对于密集的性能调整，您可能会深入研究实现锁的实际结构，例如**互斥体**和**闩锁**.

也可以看看[闩锁](glossary.html#glos_latch),[锁定模式](glossary.html#glos_lock_mode),[锁定](glossary.html#glos_locking),[互斥体](glossary.html#glos_mutex).

[](<>)锁升级

[](<>)在某些数据库系统中使用的一种操作，它可以转换许多**行锁**成单**表锁**，节省内存空间但减少对表的并发访问。`InnoDB`对行锁使用节省空间的表示，因此**锁**不需要升级。

也可以看看[锁定](glossary.html#glos_locking),[行锁](glossary.html#glos_row_lock),[表锁](glossary.html#glos_table_lock).

[](<>)锁定模式

[](<>)共享 (S)**锁**允许一个**交易**读一行。多个事务可以同时在同一行获取 S 锁。

排他 (X) 锁允许事务更新或删除行。没有其他事务可以同时在同一行上获得任何类型的锁。

**意向锁**应用于表，并用于指示事务打算在表中的行上获取哪种锁。不同的事务可以在同一张表上获取不同类型的意向锁，但是第一个获取表上意向排他 (IX) 锁的事务会阻止其他事务获取该表上的任何 S 或 X 锁。相反，第一个获取表上意向共享 (IS) 锁的事务会阻止其他事务获取表上的任何 X 锁。两阶段过程允许按顺序解决锁请求，而不会阻塞锁和兼容的相应操作。

也可以看看[意向锁](glossary.html#glos_intention_lock),[锁](glossary.html#glos_lock),[锁定](glossary.html#glos_locking),[交易](glossary.html#glos_transaction).

[](<>)锁定

[](<>)保护系统**交易**查看或更改其他事务正在查询或更改的数据。这**锁定**策略必须平衡数据库操作的可靠性和一致性（原则**酸**哲学）反对良好所需的性能**并发**.微调锁定策略通常涉及选择一个**隔离级别**并确保您的所有数据库操作对于该隔离级别都是安全可靠的。

也可以看看[酸](glossary.html#glos_acid),[并发](glossary.html#glos_concurrency),[隔离级别](glossary.html#glos_isolation_level),[锁定](glossary.html#glos_locking),[交易](glossary.html#glos_transaction).

[](<>)锁定读取

[](<>)一种[`选择`](select.html)语句也执行**锁定**上的操作`InnoDB`桌子。任何一个`选择 ... 更新`要么`选择 ... 锁定共享模式`.它有可能产生一个**僵局**，取决于**隔离级别**的交易。一个相反的**非锁定读**.不允许用于 a 中的全局表**只读事务**.

`选择...分享`替换`选择 ... 锁定共享模式`在 MySQL 8.0.1 中，但是`锁定分享模式`仍然可用于向后兼容。

看[第 15.7.2.4 节，“锁定读取”](innodb-locking-reads.html).

也可以看看[僵局](glossary.html#glos_deadlock), [隔离级别](glossary.html#glos_isolation_level), [锁定](glossary.html#glos_locking), [非锁定读](glossary.html#glos_non_locking_read), [只读事务](glossary.html#glos_read_only_transaction).

[](<>)日志

[](<>)在里面`InnoDB`在上下文中，“日志”或“日志文件”通常是指**重做日志**代表的**ib\_日志文件*`ñ`***文件。另一种类型`InnoDB`日志是**撤消日志**，这是一个存储区域，用于保存由活动事务修改的数据副本。

在 MySQL 中重要的其他类型的日志是**错误日志**（用于诊断启动和运行时问题），**二进制日志**（用于处理复制和执行时间点恢复），**一般查询日志**（用于诊断应用程序问题），以及**慢查询日志**（用于诊断性能问题）。

也可以看看[二进制日志](glossary.html#glos_binary_log),[错误日志](glossary.html#glos_error_log),[一般查询日志](glossary.html#glos_general_query_log),[ib\_日志文件](glossary.html#glos_ib_logfile),[重做日志](glossary.html#glos_redo_log),[慢查询日志](glossary.html#glos_slow_query_log),[撤消日志](glossary.html#glos_undo_log).

[](<>)日志缓冲区

[](<>)保存要写入的数据的内存区域**日志文件**这构成了**重做日志**.它是由控制[`innodb_log_buffer_size`](innodb-parameters.html#sysvar_innodb_log_buffer_size)配置选项。

也可以看看[日志文件](glossary.html#glos_log_file),[重做日志](glossary.html#glos_redo_log).

[](<>)日志文件

[](<>)中的一个**ib\_日志文件*`ñ`***组成的文件**重做日志**.数据从**日志缓冲区**内存区。

也可以看看[ib\_日志文件](glossary.html#glos_ib_logfile),[日志缓冲区](glossary.html#glos_log_buffer),[重做日志](glossary.html#glos_redo_log).

[](<>)日志组

[](<>)组成的文件集**重做日志**，通常命名为`ib_logfile0`和`ib_logfile1`.（因此，有时统称为**ib\_日志文件**.)

也可以看看[ib\_日志文件](glossary.html#glos_ib_logfile),[重做日志](glossary.html#glos_redo_log).

[](<>)合乎逻辑的

[](<>)一种涉及高级抽象方面的操作，例如表、查询、索引和其他 SQL 概念。通常，逻辑方面对于使数据库管理和应用程序开发方便和可用很重要。对比**身体的**.

也可以看看[逻辑备份](glossary.html#glos_logical_backup),[身体的](glossary.html#glos_physical).

[](<>)逻辑备份

[](<>)一种**备份**再现表结构和数据，无需复制实际数据文件。例如，**`mysql转储`**命令生成一个逻辑备份，因为它的输出包含诸如[`创建表`](create-table.html)和[`插入`](insert.html)可以重新创建数据。对比**物理备份**.逻辑备份提供了灵活性（例如，您可以在恢复之前编辑表定义或插入语句），但可能需要更长的时间才能恢复**恢复**而不是物理备份。

也可以看看[备份](glossary.html#glos_backup),[mysql转储](glossary.html#glos_mysqldump),[物理备份](glossary.html#glos_physical_backup),[恢复](glossary.html#glos_restore).

[](<>)松动的\_

[](<>)添加的前缀`InnoDB`服务器后的配置选项**启动**，因此当前级别的 MySQL 无法识别的任何新配置选项都不会导致启动失败。MySQL 处理以此前缀开头的配置选项，但如果前缀后面的部分不是可识别的选项，则会给出警告而不是失败。

也可以看看[启动](glossary.html#glos_startup).

[](<>)低水位线

[](<>)一个表示下限的值，通常是一些纠正措施开始或变得更加激进的阈值。对比**高水位线**.

也可以看看[高水位线](glossary.html#glos_high_water_mark).

[](<>)LRU

[](<>)“最近最少使用”的首字母缩写词，一种管理存储区域的常用方法。最近没有使用的项目是**被驱逐**当需要空间来缓存较新的项目时。`InnoDB`默认使用 LRU 机制来管理**页面**内**缓冲池**, 但在页面可能只被读取一次的情况下例外，例如在**全表扫描**.LRU 算法的这种变体称为**中点插入策略**.有关详细信息，请参阅[第 15.5.1 节，“缓冲池”](innodb-buffer-pool.html).

也可以看看[缓冲池](glossary.html#glos_buffer_pool),[驱逐](glossary.html#glos_eviction),[全表扫描](glossary.html#glos_full_table_scan),[中点插入策略](glossary.html#glos_midpoint_insertion_strategy),[页](glossary.html#glos_page).

[](<>)LSN

[](<>)“日志序列号”的缩写。这个任意的、不断增加的值表示一个时间点，对应于记录在**重做日志**.（这个时间点不管**交易**边界；它可以落在一个或多个事务的中间。）它由内部使用`InnoDB`期间**崩溃恢复**并用于管理**缓冲池**.

在 MySQL 5.6.3 之前，LSN 是一个 4 字节的无符号整数。当重做日志文件大小限制从 4GB 增加到 512GB 时，LSN 在 MySQL 5.6.3 中变成了一个 8 字节的无符号整数，因为需要额外的字节来存储额外的大小信息。基于 MySQL 5.6.3 或更高版本构建的使用 LSN 值的应用程序应使用 64 位而不是 32 位变量来存储和比较 LSN 值。

在里面**MySQL 企业备份**产品，您可以指定一个 LSN 来表示从哪个时间点获取**增量备份**.相关 LSN 由**mysql备份**命令。获得与完整备份时间相对应的 LSN 后，您可以指定该值以进行后续增量备份，其输出包含下一次增量备份的另一个 LSN。

也可以看看[缓冲池](glossary.html#glos_buffer_pool),[崩溃恢复](glossary.html#glos_crash_recovery),[增量备份](glossary.html#glos_incremental_backup),[MySQL 企业备份](glossary.html#glos_mysql_enterprise_backup),[重做日志](glossary.html#glos_redo_log),[交易](glossary.html#glos_transaction).

### 米

[](<>).MRG 文件

[](<>)包含对其他表的引用的文件，由`合并`存储引擎。具有此扩展名的文件始终包含在由**mysql备份**的命令**MySQL 企业备份**产品。

也可以看看[MySQL 企业备份](glossary.html#glos_mysql_enterprise_backup),[mysql备份命令](glossary.html#glos_mysqlbackup_command).

[](<>).MYD 文件

[](<>)MySQL 用来存储数据的文件[`MyISAM`](myisam-storage-engine.html)桌子。

也可以看看[.MYI 文件](glossary.html#glos_myi_file),[MySQL 企业备份](glossary.html#glos_mysql_enterprise_backup),[mysql备份命令](glossary.html#glos_mysqlbackup_command).

[](<>).MYI 文件

[](<>)MySQL 用来存储索引的文件[`MyISAM`](myisam-storage-engine.html)桌子。

也可以看看[.MYD 文件](glossary.html#glos_myd_file),[MySQL 企业备份](glossary.html#glos_mysql_enterprise_backup),[mysql备份命令](glossary.html#glos_mysqlbackup_command).

[](<>)掌握

看[资源](glossary.html#glos_source).

[](<>)主线程

[](<>)一个`InnoDB` **线**在后台执行各种任务。这些任务中的大多数都与 I/O 相关，例如从**更改缓冲区**到适当的二级索引。

改善**并发**，有时动作从主线程移动到单独的后台线程。例如，在 MySQL 5.6 及更高版本中，**脏页**是**酡**来自**缓冲池**由**页面清洁器**线程而不是主线程。

也可以看看[缓冲池](glossary.html#glos_buffer_pool),[更改缓冲区](glossary.html#glos_change_buffer),[并发](glossary.html#glos_concurrency),[脏页](glossary.html#glos_dirty_page),[冲洗](glossary.html#glos_flush),[页面清洁器](glossary.html#glos_page_cleaner),[线](glossary.html#glos_thread).

[](<>)MDL

[](<>)“元数据锁”的缩写。

也可以看看[元数据锁](glossary.html#glos_metadata_lock).

[](<>)中等信任度

[](<>)同义词**部分信任**.由于信任设置的范围如此广泛，因此首选“部分信任”，以避免暗示只有三个级别（低、中和完全）。

也可以看看[连接器/网络](glossary.html#glos_connector_net),[部分信任](glossary.html#glos_partial_trust).

[](<>)内存缓存

[](<>)许多 MySQL 和**NoSQL**软件堆栈，允许对单个值进行快速读取和写入，并将结果完全缓存在内存中。传统上，应用程序需要额外的逻辑来将相同的数据写入 MySQL 数据库以进行永久存储，或者在尚未缓存在内存中时从 MySQL 数据库中读取数据。现在，应用程序可以使用简单的**内存缓存**协议，由多种语言的客户端库支持，使用以下方式直接与 MySQL 服务器通信`InnoDB`要么`新开发银行`表。这些 MySQL 表的 NoSQL 接口允许应用程序实现比直接发出 SQL 语句更高的读写性能，并且可以简化已经包含的系统的应用程序逻辑和部署配置**内存缓存**用于内存缓存。

这**内存缓存**接口到`InnoDB`表在 MySQL 5.6 及更高版本中可用；看[第 15.20 节，“InnoDB memcached 插件”](innodb-memcached.html)详情。这**内存缓存**接口到`新开发银行`表在 NDB Cluster 7.2 及更高版本中可用；看[http://dev.mysql.com/doc/ndbapi/en/ndbmemcache.html](/doc/ndbapi/en/ndbmemcache.html)详情。

也可以看看[InnoDB](glossary.html#glos_innodb),[NoSQL](glossary.html#glos_nosql).

[](<>)合并

[](<>)将更改应用到缓存在内存中的数据，例如当一个页面被带入**缓冲池**，以及记录在**更改缓冲区**被并入缓冲池中的页面。更新后的数据最终写入**表空间**由**冲洗**机制。

也可以看看[缓冲池](glossary.html#glos_buffer_pool),[更改缓冲区](glossary.html#glos_change_buffer),[冲洗](glossary.html#glos_flush),[表空间](glossary.html#glos_tablespace).

[](<>)元数据锁

[](<>)一种**锁**防止**DDL**对同时被另一个表使用的表的操作**交易**.有关详细信息，请参阅[第 8.11.4 节，“元数据锁定”](metadata-locking.html).

增强功能**在线的**操作，特别是在 MySQL 5.6 和更高版本中，专注于减少元数据锁定的数量。目标是针对不改变表结构的 DDL 操作（例如[`创建索引`](create-index.html)和[`删除索引`](drop-index.html)为了`InnoDB`表）在其他事务查询、更新表时继续。

也可以看看[DDL](glossary.html#glos_ddl),[锁](glossary.html#glos_lock),[在线的](glossary.html#glos_online),[交易](glossary.html#glos_transaction).

[](<>)指标计数器

[](<>)由[`INNODB_METRICS`](information-schema-innodb-metrics-table.html)表中的**信息\_架构**, 在 MySQL 5.6 及更高版本中。您可以查询**计数**和低级别的总数`InnoDB`操作，并将结果与​​来自**性能模式**.

也可以看看[柜台](glossary.html#glos_counter),[信息\_架构](glossary.html#glos_information_schema),[性能模式](glossary.html#glos_performance_schema).

[](<>)中点插入策略

[](<>)初带技术**页面**进入`InnoDB` **缓冲池**不是在列表的“最新”末尾，而是在中间的某个地方。该点的确切位置可能会有所不同，具体取决于[`innodb_old_blocks_pct`](innodb-parameters.html#sysvar_innodb_old_blocks_pct)选项。目的是只读取一次的页面，例如在**全表扫描**, 可以比使用严格的缓冲池更快地老化**LRU**算法。有关详细信息，请参阅[第 15.5.1 节，“缓冲池”](innodb-buffer-pool.html).

也可以看看[缓冲池](glossary.html#glos_buffer_pool),[全表扫描](glossary.html#glos_full_table_scan),[LRU](glossary.html#glos_lru),[页](glossary.html#glos_page).

[](<>)小额交易

[](<>)一个内部阶段`InnoDB`处理，在进行更改时**身体的**级别到内部数据结构期间**DML**操作。小型交易 (mtr) 没有以下概念**回滚**;多个小交易可以发生在一个单一的**交易**.小型交易将信息写入**重做日志**期间使用的**崩溃恢复**.小型交易也可以在常规交易的上下文之外发生，例如在**清除**由后台线程处理。

也可以看看[犯罪](glossary.html#glos_commit),[崩溃恢复](glossary.html#glos_crash_recovery),[DML](glossary.html#glos_dml),[身体的](glossary.html#glos_physical),[清除](glossary.html#glos_purge),[重做日志](glossary.html#glos_redo_log),[回滚](glossary.html#glos_rollback),[交易](glossary.html#glos_transaction).

[](<>)混合模式插入

[](<>)一个[`插入`](insert.html)声明在哪里**自动递增**为一些但不是所有的新行指定了值。例如，一个多值`插入`在某些情况下可以为自动增量列指定一个值，并且`空值`在其他情况下。`InnoDB`为列值指定为的行生成自动增量值`空值`.另一个例子是[`插入 ... 在重复密钥更新时`](insert-on-duplicate.html)对于任何被处理为`更新`而不是`插入`陈述。

可能导致之间的一致性问题**资源**和**复制品**服务器在一个**复制**配置。可以要求调整的值**innodb\_自动公司\_锁\_模式**配置选项。

也可以看看[自动递增](glossary.html#glos_auto_increment),[innodb\_自动公司\_锁\_模式](glossary.html#glos_innodb_autoinc_lock_mode), [复制品](glossary.html#glos_replica), [复制](glossary.html#glos_replication), [资源](glossary.html#glos_source).

[](<>)MM.MySQL

[](<>)用于 MySQL 的旧 JDBC 驱动程序演变为**连接器/J**当它与 MySQL 产品集成时。

也可以看看[连接器/J](glossary.html#glos_connector_j).

[](<>)单核细胞增多症

[](<>)Novell 开发的开源框架，可与**连接器/网络**和**C＃**Linux 平台上的应用程序。

也可以看看[连接器/网络](glossary.html#glos_connector_net), [C＃](glossary.html#glos_csharp).

[](<>)地铁

看[小额交易](glossary.html#glos_mini_transaction).

[](<>)多核

[](<>)一种可以利用多线程程序的处理器，例如 MySQL 服务器。

[](<>)多版本并发控制

看[MVCC](glossary.html#glos_mvcc).

[](<>)互斥体

[](<>)“互斥变量”的非正式缩写。（互斥体本身是“互斥”的缩写。）`InnoDB`用于表示和强制执行独占访问**锁**到内部内存数据结构。一旦获得锁，任何其他进程、线程等都无法获得相同的锁。对比**rw锁**， 哪一个`InnoDB`用于表示和强制共享访问**锁**到内部内存数据结构。互斥锁和读写锁统称为**闩锁**.

也可以看看[闩锁](glossary.html#glos_latch),[锁](glossary.html#glos_lock),[性能模式](glossary.html#glos_performance_schema),[线程](glossary.html#glos_pthreads),[rw锁](glossary.html#glos_rw_lock).

[](<>)MVCC

[](<>)“多版本并发控制”的缩写。这种技术让`InnoDB` **交易**有一定的**隔离级别**履行**一致读**操作；也就是说，查询正在被其他事务更新的行，并查看这些更新发生之前的值。这是一个强大的技术来增加**并发**, 通过允许查询继续进行而无需等待**锁**由其他交易持有。

这种技术在数据库世界中并不普遍。其他一些数据库产品和一些其他 MySQL 存储引擎不支持它。

也可以看看[酸](glossary.html#glos_acid),[并发](glossary.html#glos_concurrency),[一致读](glossary.html#glos_consistent_read),[隔离级别](glossary.html#glos_isolation_level),[锁](glossary.html#glos_lock),[交易](glossary.html#glos_transaction).

[](<>)我的.cnf

[](<>)MySQL 的名称，在 Unix 或 Linux 系统上**选项文件**.

也可以看看[我的.ini](glossary.html#glos_my_ini), [选项文件](glossary.html#glos_option_file).

[](<>)我的.ini

[](<>)MySQL 在 Windows 系统上的名称**选项文件**.

也可以看看[我的.cnf](glossary.html#glos_my_cnf), [选项文件](glossary.html#glos_option_file).

[](<>)MyODBC 驱动程序

[](<>)过时的名称**连接器/ODBC**.

也可以看看[连接器/ODBC](glossary.html#glos_connector_odbc).

[](<>)mysql

[](<>)这[**mysql**](mysql.html)program 是 MySQL 数据库的命令行解释器。它处理**SQL**语句，以及特定于 MySQL 的命令，例如[`显示表格`](show-tables.html)，通过将请求传递给[**mysqld**](mysqld.html)守护进程。

也可以看看[mysqld](glossary.html#glos_mysqld),[SQL](glossary.html#glos_sql).

[](<>)MySQL 企业备份

[](<>)执行的许可产品**热备份**MySQL 数据库。它在备份时提供最高的效率和灵活性[`InnoDB`](innodb-storage-engine.html)表，但也可以备份[`MyISAM`](myisam-storage-engine.html)和其他种类的桌子。

也可以看看[热备份](glossary.html#glos_hot_backup),[InnoDB](glossary.html#glos_innodb).

[](<>)mysql备份命令

[](<>)的命令行工具**MySQL 企业备份**产品。它执行一个**热备份**操作为[`InnoDB`](innodb-storage-engine.html)表和一个[热备份](glossary.html#glos_warm_backup)为了[`MyISAM`](myisam-storage-engine.html)和其他种类的桌子。看[第 30.2 节，“MySQL 企业备份概述”](mysql-enterprise-backup.html)有关此命令的更多信息。

也可以看看[热备份](glossary.html#glos_hot_backup),[MySQL 企业备份](glossary.html#glos_mysql_enterprise_backup),[热备份](glossary.html#glos_warm_backup).

[](<>)mysql客户端

[](<>)文件实现的库的非正式名称**libmysql客户端**, 有扩展名`。一种`要么`。所以`.

也可以看看[libmysql客户端](glossary.html#glos_libmysqlclient).

[](<>)mysqld

[](<>) [**mysqld**](mysqld.html)，也称为 MySQL 服务器，是一个单多线程程序，在 MySQL 安装中完成大部分工作。它不会产生额外的进程。MySQL 服务器管理对 MySQL 数据目录的访问，该目录包含数据库、表和其他信息，例如日志文件和状态文件。

[**mysqld**](mysqld.html)作为 Unix 守护进程或 Windows 服务运行，不断等待请求并在后台执行维护工作。

也可以看看[实例](glossary.html#glos_instance),[mysql](glossary.html#glos_mysql).

[](<>)MySQL数据库

[](<>)开源的名称**Python**构成 MySQL 基础的模块**Python API**.

也可以看看[Python](glossary.html#glos_python),[Python API](glossary.html#glos_python_api).

[](<>)mysql转储

[](<>)执行一个命令**逻辑备份**数据库、表和表数据的某种组合。结果是重现原始模式对象、数据或两者的 SQL 语句。对于大量数据，a**物理备份**解决方案如**MySQL 企业备份**速度更快，特别是对于**恢复**手术。

也可以看看[逻辑备份](glossary.html#glos_logical_backup), [MySQL 企业备份](glossary.html#glos_mysql_enterprise_backup), [物理备份](glossary.html#glos_physical_backup), [恢复](glossary.html#glos_restore).

### ñ

[](<>)。网

[](<>)

也可以看看[网络](glossary.html#glos_ado_net), [ASP.net](glossary.html#glos_asp_net), [连接器/网络](glossary.html#glos_connector_net), [单核细胞增多症](glossary.html#glos_mono), [视觉工作室](glossary.html#glos_visual_studio).

[](<>)本机 C API

[](<>)同义词**libmysql客户端**.

也可以看看[库mysql](glossary.html#glos_libmysql).

[](<>)自然键

[](<>)一个索引列，通常是**首要的关键**，其中的值具有一定的现实意义。通常建议不要这样做，因为：

-   如果该值发生变化，则可能需要进行大量索引维护来重新排序**聚集索引**并更新在每个重复的主键值的副本**二级索引**.

-   即使是看似稳定的值也可能以难以在数据库中正确表示的不可预测的方式发生变化。例如，一个国家可以更改为两个或多个，从而使原来的国家代码过时。或者，关于唯一值的规则可能有例外。例如，即使纳税人 ID 旨在对一个人唯一，数据库也可能必须处理违反该规则的记录，例如身份盗用的情况。纳税人 ID 和其他敏感的 ID 号也会造成较差的主键，因为它们可能需要被保护、加密，以及以其他方式与其他列不同的处理方式。

    因此，通常最好使用任意数值来形成一个**合成密钥**，例如使用**自动递增**柱子。

也可以看看[自动递增](glossary.html#glos_auto_increment),[聚集索引](glossary.html#glos_clustered_index),[首要的关键](glossary.html#glos_primary_key),[二级索引](glossary.html#glos_secondary_index),[合成密钥](glossary.html#glos_synthetic_key).

[](<>)邻居页面

[](<>)任何**页**在相同的**程度**作为一个特定的页面。当一个页面被选为**酡**, 任何相邻页面**肮脏的**通常也会刷新，作为传统硬盘的 I/O 优化。在 MySQL 5.6 及更高版本中，此行为可以由配置变量控制[`innodb_flush_neighbors`](innodb-parameters.html#sysvar_innodb_flush_neighbors);您可以为 SSD 驱动器关闭该设置，因为在随机位置写入小批量数据的开销不同。

也可以看看[脏页](glossary.html#glos_dirty_page),[程度](glossary.html#glos_extent),[冲洗](glossary.html#glos_flush),[页](glossary.html#glos_page).

[](<>)下一键锁

[](<>)一个组合**记录锁**在索引记录和[间隙锁](glossary.html#glos_gap_lock)关于前指数记录的差距。

也可以看看[间隙锁](glossary.html#glos_gap_lock),[锁定](glossary.html#glos_locking),[记录锁](glossary.html#glos_record_lock).

[](<>)非锁定读

[](<>)一种**询问**不使用`选择 ... 更新`要么`选择 ... 锁定共享模式`条款。全局表中唯一允许的查询类型**只读事务**.一个相反的**锁定读取**.看[第 15.7.2.3 节，“一致的非锁定读取”](innodb-consistent-read.html).

`选择...分享`替换`选择 ... 锁定共享模式`在 MySQL 8.0.1 中，但是`锁定分享模式`仍然可用于向后兼容。

也可以看看[锁定读取](glossary.html#glos_locking_read),[询问](glossary.html#glos_query),[只读事务](glossary.html#glos_read_only_transaction).

[](<>)不可重复读

[](<>)查询检索数据时的情况，以及同一内部的后续查询**交易**检索应该是相同的数据，但查询返回不同的结果（由同时提交的另一个事务更改）。

这种操作违背了**酸**数据库设计原则。在事务中，数据应该是一致的，具有可预测和稳定的关系。

在不同的**隔离级别**，不可重复读取被阻止**可序列化读取**和**可重复阅读**水平，并由**一致读**， 和**读未提交**水平。

也可以看看[酸](glossary.html#glos_acid),[一致读](glossary.html#glos_consistent_read),[隔离级别](glossary.html#glos_isolation_level),[阅读未提交](glossary.html#glos_read_uncommitted),[可重复阅读](glossary.html#glos_repeatable_read),[可序列化](glossary.html#glos_serializable),[交易](glossary.html#glos_transaction).

[](<>)非阻塞 I/O

[](<>)一个行业术语，含义相同**异步 I/O**.

也可以看看[异步 I/O](glossary.html#glos_asynchronous_io).

[](<>)归一化

[](<>)一种数据库设计策略，将数据拆分为多个表，并将重复值压缩为由 ID 表示的单行，以避免存储、查询和更新冗余或冗长的值。它通常用于**OLTP**应用程序。

例如，一个地址可能会被赋予一个唯一的 ID，这样人口普查数据库就可以表示这种关系**住在这个地址**通过将该 ID 与家庭的每个成员相关联，而不是存储复杂值的多个副本，例如**123 Main Street, Anytown, 美国**.

再举一个例子，虽然一个简单的地址簿应用程序可能将每个电话号码与一个人的姓名和地址存储在同一个表中，但电话公司数据库可能会给每个电话号码一个特殊的 ID，并将号码和 ID 存储在一个单独的表中。当区号分开时，这种标准化表示可以简化大规模更新。

并不总是推荐标准化。主要被查询的数据，并且只能通过完全删除和重新加载来更新，通常保存在更少、更大的表中，并带有重复值的冗余副本。这种数据表示被称为**非规范化**，并且经常出现在数据仓库应用程序中。

也可以看看[非规范化](glossary.html#glos_denormalized),[外键](glossary.html#glos_foreign_key),[OLTP](glossary.html#glos_oltp),[关系](glossary.html#glos_relational).

[](<>)NoSQL

[](<>)一组不使用**SQL**语言作为它们读取和写入数据的主要机制。一些 NoSQL 技术充当键值存储，只接受单值读取和写入；一些放宽限制**酸**方法;还有一些不需要预先计划**图式**.MySQL 用户可以通过使用**内存缓存**直接访问某些类型的 MySQL 表的 API。这**内存缓存**接口到`InnoDB`表在 MySQL 5.6 及更高版本中可用；看[第 15.20 节，“InnoDB memcached 插件”](innodb-memcached.html)详情。这**内存缓存**接口到`新开发银行`表在 NDB Cluster 7.2 及更高版本中可用；看[ndbmemcache—NDB Cluster 的 Memcache API（不再支持）](https://dev.mysql.com/doc/ndbapi/en/ndbmemcache.html).

也可以看看[酸](glossary.html#glos_acid),[InnoDB](glossary.html#glos_innodb),[内存缓存](glossary.html#glos_memcached),[图式](glossary.html#glos_schema),[SQL](glossary.html#glos_sql).

[](<>)NOT NULL 约束

[](<>)一种**约束**指定一个**柱子**不能包含任何**空值**价值观。它有助于保存**参照完整性**，因为数据库服务器可以识别具有错误缺失值的数据。它还有助于查询优化中涉及的算术，允许优化器预测该列索引中的条目数。

也可以看看[柱子](glossary.html#glos_column),[约束](glossary.html#glos_constraint),[空值](glossary.html#glos_null),[首要的关键](glossary.html#glos_primary_key),[参照完整性](glossary.html#glos_referential_integrity).

[](<>)空值

[](<>)一个特殊的价值**SQL**，表示没有数据。任何涉及 a 的算术运算或相等性测试`空值`值，反过来产生一个`空值`结果。（因此它类似于 IEEE 浮点概念的 NaN，“不是数字”。）任何聚合计算，例如`平均（）`忽略行`空值`值，在确定要除以多少行时。唯一适用的测试`空值`values 使用 SQL 惯用语`一片空白`要么`不为空`.

`空值`价值观在其中发挥作用**指数**操作，因为为了提高性能，数据库必须尽量减少跟踪缺失数据值的开销。通常，`空值`值不存储在索引中，因为使用标准比较运算符测试索引列的查询永远不会匹配具有`空值`该列的值。出于同样的原因，唯一索引不会阻止`空值`价值观；这些值根本没有在索引中表示。声明一个`非空`对列的约束可确保索引中没有遗漏任何行，从而实现更好的查询优化（准确计算行数并估计是否使用索引）。

因为**首要的关键**必须能够唯一标识表中的每一行，单列主键不能包含任何`空值`值，并且多列主键不能包含任何行`空值`所有列中的值。

尽管 Oracle 数据库允许`空值`要与字符串连接的值，`InnoDB`将此类操作的结果视为`空值`.

也可以看看[指数](glossary.html#glos_index),[首要的关键](glossary.html#glos_primary_key),[SQL](glossary.html#glos_sql).

### ○

[](<>).OPT 文件

[](<>)包含数据库配置信息的文件。具有此扩展名的文件包含在由**mysql备份**的命令**MySQL 企业备份**产品。

也可以看看[MySQL 企业备份](glossary.html#glos_mysql_enterprise_backup),[mysql备份命令](glossary.html#glos_mysqlbackup_command).

[](<>)ODBC

[](<>)开放式数据库连接的首字母缩写词，一种行业标准 API。通常与基于 Windows 的服务器或需要 ODBC 与 MySQL 通信的应用程序一起使用。MySQL ODBC 驱动程序称为**连接器/ODBC**.

也可以看看[连接器/ODBC](glossary.html#glos_connector_odbc).

[](<>)页外栏

[](<>)包含可变长度数据的列（例如[`斑点`](blob.html)和[`VARCHAR`](char.html)) 这太长了，不适合**B树**页。数据存储在**溢出页面**.这**动态的**对于这种存储，行格式比旧格式更有效**袖珍的**行格式。

也可以看看[B树](glossary.html#glos_b_tree),[紧凑的行格式](glossary.html#glos_compact_row_format),[动态行格式](glossary.html#glos_dynamic_row_format),[溢出页面](glossary.html#glos_overflow_page).

[](<>)OLTP

[](<>)“在线交易处理”的缩写。一个数据库系统或数据库应用程序，它运行具有许多**交易**，具有频繁的写入和读取，通常一次影响少量数据。例如，航空公司预订系统或处理银行存款的应用程序。数据可能被组织在**归一化**形成平衡**DML**（插入/更新/删除）效率和**询问**效率。对比**数据仓库**.

以其**行级锁定**和**事务性的**能力，**InnoDB**是 OLTP 应用程序中使用的 MySQL 表的理想存储引擎。

也可以看看[数据仓库](glossary.html#glos_data_warehouse),[DML](glossary.html#glos_dml),[InnoDB](glossary.html#glos_innodb),[询问](glossary.html#glos_query),[行锁](glossary.html#glos_row_lock),[交易](glossary.html#glos_transaction).

[](<>)在线的

[](<>)一种不涉及数据库停机、阻塞或受限操作的操作。通常应用于**DDL**.缩短限制操作时间的操作，例如**快速索引创建**, 已经演变成更广泛的集合**在线 DDL**MySQL 5.6 中的操作。

在备份的上下文中，一个**热备份**是一个在线操作和一个**热备份**部分是在线操作。

也可以看看[DDL](glossary.html#glos_ddl),[快速创建索引](glossary.html#glos_fast_index_creation),[热备份](glossary.html#glos_hot_backup),[在线 DDL](glossary.html#glos_online_ddl),[热备份](glossary.html#glos_warm_backup).

[](<>)在线 DDL

[](<>)提高性能、并发性和可用性的功能`InnoDB`期间的表**DDL**（主要是[`更改表`](alter-table.html)) 操作。看[第 15.12 节，“InnoDB 和在线 DDL”](innodb-online-ddl.html)详情。

细节因操作类型而异。在某些情况下，可以同时修改表，而[`更改表`](alter-table.html)正在处理。该操作可能能够在没有表副本的情况下执行，或者使用特别优化的表副本类型。就地操作的 DML 日志空间使用情况由[`innodb_online_alter_log_max_size`](innodb-parameters.html#sysvar_innodb_online_alter_log_max_size)配置选项。

此功能是对**快速创建索引**MySQL 5.5 中的功能。

也可以看看[DDL](glossary.html#glos_ddl),[快速创建索引](glossary.html#glos_fast_index_creation),[在线的](glossary.html#glos_online).

[](<>)乐观的

[](<>)一种指导关系数据库系统的低级实现决策的方法。性能要求和**并发**在关系数据库中意味着必须快速启动或分派操作。一致性和一致性要求**参照完整性**意味着任何操作都可能失败：事务可能会回滚，**DML**操作可能违反约束，锁请求可能导致死锁，网络错误可能导致超时。乐观策略是假设大多数请求或尝试成功，因此为失败情况做准备的工作相对较少。当这个假设成立时，数据库几乎不会做不必要的工作；当请求确实失败时，必须做额外的工作来清理和撤消更改。

`InnoDB`使用乐观策略进行操作，例如**锁定**和**提交**.例如，事务更改的数据可以在提交发生之前写入数据文件，这使得提交本身非常快，但如果事务回滚，则需要更多的工作来撤消更改。

与乐观策略相反的是**悲观**第一，优化系统以处理不可靠且经常不成功的操作。这种方法在数据库系统中很少见，因为在选择可靠的硬件、网络和算法时需要非常小心。

也可以看看[犯罪](glossary.html#glos_commit),[并发](glossary.html#glos_concurrency),[DML](glossary.html#glos_dml),[锁定](glossary.html#glos_locking),[悲观](glossary.html#glos_pessimistic),[参照完整性](glossary.html#glos_referential_integrity).

[](<>)优化器

[](<>)确定最佳的 MySQL 组件**索引**和**加入**为了使用**询问**, 基于相关的特征和数据分布**表**.

也可以看看[指数](glossary.html#glos_index),[加入](glossary.html#glos_join),[询问](glossary.html#glos_query),[桌子](glossary.html#glos_table).

[](<>)选项

[](<>)MySQL 的配置参数，或者存储在**选项文件**或在命令行上传递。

为了**选项**适用于**InnoDB**表，每个选项名称都以前缀开头`innodb_`.

也可以看看[InnoDB](glossary.html#glos_innodb),[选项](glossary.html#glos_option),[选项文件](glossary.html#glos_option_file).

[](<>)选项文件

[](<>)保存配置的文件**选项**对于 MySQL 实例。传统上，在 Linux 和 Unix 上，这个文件被命名为`我的.cnf`, 在 Windows 上它被命名为`我的.ini`.

也可以看看[配置文件](glossary.html#glos_configuration_file),[我的.cnf](glossary.html#glos_my_cnf),[我的.ini](glossary.html#glos_my_ini),[选项](glossary.html#glos_option).

[](<>)溢出页面

[](<>)单独分配的磁盘**页面**包含可变长度列（例如`斑点`和`VARCHAR`) 太长而无法放在**B树**页。关联的列称为**页外栏**.

也可以看看[B树](glossary.html#glos_b_tree),[页外栏](glossary.html#glos_off_page_column),[页](glossary.html#glos_page).

### 磷

[](<>).par 文件

[](<>)包含分区定义的文件。具有此扩展名的文件包含在由`mysql备份`的命令**MySQL 企业备份**产品。

随着本机分区支持的引入`InnoDB`MySQL 5.7.6 中的表，`.par`不再为分区创建文件`InnoDB`表。分区`MyISAM`表继续使用`.par`MySQL 5.7 中的文件。在 MySQL 8.0 中，分区支持仅由`InnoDB`存储引擎。因此，`.par`从 MySQL 8.0 开始不再使用文件。

也可以看看[MySQL 企业备份](glossary.html#glos_mysql_enterprise_backup),[mysql备份命令](glossary.html#glos_mysqlbackup_command).

[](<>)页

[](<>)代表多少数据的单位`InnoDB`在磁盘之间的任何时间传输（**数据文件**）和内存（**缓冲池**）。一个页面可以包含一个或多个**行**，取决于每行中有多少数据。如果一行不完全适合单个页面，`InnoDB`设置额外的指针式数据结构，以便可以将有关行的信息存储在一页中。

在每个页面中容纳更多数据的一种方法是使用**压缩行格式**.对于使用 BLOB 或大文本字段的表，**紧凑的行格式**允许将这些大列与行的其余部分分开存储，从而减少不引用这些列的查询的 I/O 开销和内存使用。

什么时候`InnoDB`批量读取或写入页面集以增加 I/O 吞吐量，它读取或写入一个**程度**一次。

所有的`InnoDB`MySQL 实例中的磁盘数据结构共享相同的**页面大小**.

也可以看看[缓冲池](glossary.html#glos_buffer_pool),[紧凑的行格式](glossary.html#glos_compact_row_format),[压缩行格式](glossary.html#glos_compressed_row_format),[数据文件](glossary.html#glos_data_files),[程度](glossary.html#glos_extent),[页面大小](glossary.html#glos_page_size),[排](glossary.html#glos_row).

[](<>)页面清洁器

[](<>)一个`InnoDB`背景**线**那**冲洗** **脏页**来自**缓冲池**.在 MySQL 5.6 之前，此活动由**主线程**.页面清理线程的数量由[`innodb_page_cleaners`](innodb-parameters.html#sysvar_innodb_page_cleaners)配置选项，在 MySQL 5.7.4 中引入。

也可以看看[缓冲池](glossary.html#glos_buffer_pool),[脏页](glossary.html#glos_dirty_page),[冲洗](glossary.html#glos_flush),[主线程](glossary.html#glos_master_thread),[线](glossary.html#glos_thread).

[](<>)页面大小

[](<>)对于 MySQL 5.5 及之前的版本，每个版本的大小`InnoDB` **页**固定为 16 KB。这个值代表了一种平衡：足够大以容纳大多数行的数据，但又足够小以最小化将不需要的数据传输到内存的性能开销。其他值未经测试或支持。

从 MySQL 5.6 开始，页面大小为`InnoDB` **实例**可以是 4KB、8KB 或 16KB，由[`innodb_page_size`](innodb-parameters.html#sysvar_innodb_page_size)配置选项。从 MySQL 5.7.6 开始，`InnoDB`还支持 32KB 和 64KB 页面大小。对于 32KB 和 64KB 页面大小，`ROW_FORMAT=压缩`不支持，最大记录大小为 16KB。

页面大小在创建 MySQL 实例时设置，之后保持不变。相同的页面大小适用于所有`InnoDB` **表空间**， 包括**系统表空间**,**每表文件**表空间，以及**通用表空间**.

较小的页面大小可以提高使用小块大小的存储设备的性能，特别是对于**固态硬盘**设备在**磁盘绑定**工作负载，例如**OLTP**应用程序。随着个别行的更新，更少的数据被复制到内存、写入磁盘、重新组织、锁定等等。

也可以看看[磁盘绑定](glossary.html#glos_disk_bound),[每表文件](glossary.html#glos_file_per_table),[通用表空间](glossary.html#glos_general_tablespace),[实例](glossary.html#glos_instance),[OLTP](glossary.html#glos_oltp),[页](glossary.html#glos_page),[固态硬盘](glossary.html#glos_ssd),[系统表空间](glossary.html#glos_system_tablespace),[表空间](glossary.html#glos_tablespace).

[](<>)父表

[](<>)表中的**外键**保存从指向的初始列值的关系**子表**.删除或更新父表中的行的后果取决于`在更新`和`删除时`外键定义中的子句。子表中具有相应值的行可以依次自动删除或更新，或者这些列可以设置为`空值`，否则可能会阻止该操作。

也可以看看[子表](glossary.html#glos_child_table),[外键](glossary.html#glos_foreign_key).

[](<>)部分备份

[](<>)一种**备份**其中包含一些**表**在 MySQL 数据库中，或 MySQL 实例中的某些数据库中。对比**完全备份**.

也可以看看[备份](glossary.html#glos_backup),[完全备份](glossary.html#glos_full_backup),[桌子](glossary.html#glos_table).

[](<>)部分索引

[](<>)一个**指数**仅表示列值的一部分，通常是前 N 个字符（**字首**) 长`VARCHAR`价值。

也可以看看[指数](glossary.html#glos_index),[索引前缀](glossary.html#glos_index_prefix).

[](<>)部分信任

[](<>)托管服务提供商通常使用的执行环境，其中应用程序具有某些权限，但没有其他权限。例如，应用程序可能能够通过网络访问数据库服务器，但在读取和写入本地文件方面是“沙盒”。

也可以看看[连接器/网络](glossary.html#glos_connector_net).

[](<>)性能模式

[](<>)这`性能模式`在 MySQL 5.5 及更高版本中，schema 提供了一组表，您可以查询这些表以获取有关 MySQL 服务器许多内部部分的性能特征的详细信息。看[第 27 章，*MySQL 性能模式*](performance-schema.html).

也可以看看[信息\_架构](glossary.html#glos_information_schema),[闩锁](glossary.html#glos_latch),[互斥体](glossary.html#glos_mutex),[rw锁](glossary.html#glos_rw_lock).

[](<>)Perl

[](<>)一种源于 Unix 脚本和报告生成的编程语言。结合了高性能正则表达式和文件 I/O。可通过 CPAN 等存储库获得大量可重用模块。

也可以看看[Perl API](glossary.html#glos_perl_api).

[](<>)Perl API

[](<>)一个开源的**API**用于编写的 MySQL 应用程序**Perl**语言。通过实施`DBI`和`DBD::mysql`模块。有关详细信息，请参阅[第 29.9 节，“MySQL Perl API”](apis-perl.html).

也可以看看[API](glossary.html#glos_api),[Perl](glossary.html#glos_perl).

[](<>)持续统计

[](<>)存储的功能**指数**统计数据`InnoDB` **表**在磁盘上，提供更好的**计划稳定性**为了**查询**.有关详细信息，请参阅[第 15.8.10.1 节，“配置持久优化器统计参数”](innodb-persistent-stats.html).

也可以看看[指数](glossary.html#glos_index),[优化器](glossary.html#glos_optimizer),[计划稳定性](glossary.html#glos_plan_stability),[询问](glossary.html#glos_query),[桌子](glossary.html#glos_table).

[](<>)悲观

[](<>)一种为了安全而牺牲性能或并发性的方法。如果请求或尝试的高比例可能会失败，或者如果请求失败的后果很严重，这是合适的。`InnoDB`使用所谓的悲观**锁定**策略，尽量减少**死锁**.在应用程序级别，您可以通过使用悲观策略来避免死锁，即在一开始就获取事务所需的所有锁。

许多内置的数据库机制使用相反的**乐观的**方法。

也可以看看[僵局](glossary.html#glos_deadlock),[锁定](glossary.html#glos_locking),[乐观的](glossary.html#glos_optimistic).

[](<>)幻影

[](<>)出现在查询结果集中但不在先前查询结果集中的行。例如，如果一个查询在一个**交易**，与此同时，另一个事务在插入新行或更新行以匹配`在哪里`查询的子句。

这种情况称为幻读。比防备更难**不可重复读**，因为锁定第一个查询结果集中的所有行不会阻止导致幻像出现的更改。

在不同的**隔离级别**，幻读被阻止**可序列化读取**水平，并由**可重复阅读**,**一致读**， 和**读未提交**水平。

也可以看看[一致读](glossary.html#glos_consistent_read),[隔离级别](glossary.html#glos_isolation_level),[不可重复读](glossary.html#glos_non_repeatable_read),[阅读未提交](glossary.html#glos_read_uncommitted),[可重复阅读](glossary.html#glos_repeatable_read),[可序列化](glossary.html#glos_serializable),[交易](glossary.html#glos_transaction).

[](<>)PHP

[](<>)一种源自 Web 应用程序的编程语言。代码通常作为块嵌入到网页的源代码中，并在网页服务器传输时将输出替换到网页中。这与以整个网页的形式打印输出的 CGI 脚本等应用程序形成鲜明对比。PHP 编码风格用于高度交互和动态的网页。现代 PHP 程序也可以作为命令行或 GUI 应用程序运行。

MySQL 应用程序是使用其中一种编写的**PHP API**.可重用的模块可以写成**C**并从 PHP 调用。

另一种使用 MySQL 编写服务器端网页的技术是**ASP.net**.

也可以看看[ASP.net](glossary.html#glos_asp_net),[C](glossary.html#glos_c),[PHP API](glossary.html#glos_php_api).

[](<>)PHP API

[](<>)一些**蜜蜂**可用于编写 MySQL 应用程序**PHP**语言：原始 MySQL API (`Mysql`) MySQL 改进扩展 (`Mysqli`) MySQL 原生驱动程序 (`Mysqlnd`) MySQL 函数 (`PDO_MYSQL`) 和连接器/PHP。有关详细信息，请参阅[MySQL 和 PHP](https://dev.mysql.com/doc/apis-php/en/).

也可以看看[API](glossary.html#glos_api),[PHP](glossary.html#glos_php).

[](<>)身体的

[](<>)一种涉及硬件相关方面的操作，例如磁盘块、内存页、文件、位、磁盘读取等。通常，在专家级性能调整和问题诊断期间，物理方面很重要。对比**合乎逻辑的**.

也可以看看[合乎逻辑的](glossary.html#glos_logical),[物理备份](glossary.html#glos_physical_backup).

[](<>)物理备份

[](<>)一种**备份**复制实际的数据文件。例如，**`mysql备份`**的命令**MySQL 企业备份**产品会生成物理备份，因为它的输出包含可直接由`mysqld`服务器，从而更快**恢复**手术。对比**逻辑备份**.

也可以看看[备份](glossary.html#glos_backup),[逻辑备份](glossary.html#glos_logical_backup),[MySQL 企业备份](glossary.html#glos_mysql_enterprise_backup),[恢复](glossary.html#glos_restore).

[](<>)PITR

[](<>)首字母缩略词**时间点恢复**.

也可以看看[时间点恢复](glossary.html#glos_point_in_time_recovery).

[](<>)计划稳定性

[](<>)一个属性**查询执行计划**，其中优化器每次对给定的选择做出相同的选择**询问**，因此性能是一致且可预测的。

也可以看看[询问](glossary.html#glos_query),[查询执行计划](glossary.html#glos_query_execution_plan).

[](<>)时间点恢复

[](<>)恢复一个过程**备份**在特定日期和时间重新创建数据库的状态。通常缩写为“PITR”。由于指定时间不太可能与备份时间完全对应，因此该技术通常需要结合**物理备份**和一个**逻辑备份**.例如，与**MySQL 企业备份**产品，您恢复在指定时间点之前进行的最后一次备份，然后从**二进制日志**在备份时间和 PITR 时间之间。

也可以看看[备份](glossary.html#glos_backup),[二进制日志](glossary.html#glos_binary_log),[逻辑备份](glossary.html#glos_logical_backup),[MySQL 企业备份](glossary.html#glos_mysql_enterprise_backup),[物理备份](glossary.html#glos_physical_backup).

[](<>)港口

[](<>)数据库服务器监听的 TCP/IP 套接字的数量，用于建立一个**联系**.通常与**主持人**.根据您对网络加密的使用，可能有一个端口用于未加密流量，另一个端口用于**SSL**连接。

也可以看看[联系](glossary.html#glos_connection),[主持人](glossary.html#glos_host),[SSL](glossary.html#glos_ssl).

[](<>)字首

看[索引前缀](glossary.html#glos_index_prefix).

[](<>)准备好的备份

[](<>)一组备份文件，由**MySQL 企业备份**产品，经过所有应用阶段**二进制日志**和**增量备份**完成了。生成的文件已准备就绪**已恢复**.在应用步骤之前，这些文件称为**原始备份**.

也可以看看[二进制日志](glossary.html#glos_binary_log),[热备份](glossary.html#glos_hot_backup),[增量备份](glossary.html#glos_incremental_backup),[MySQL 企业备份](glossary.html#glos_mysql_enterprise_backup),[原始备份](glossary.html#glos_raw_backup),[恢复](glossary.html#glos_restore).

[](<>)准备好的陈述

[](<>)预先分析以确定有效执行计划的 SQL 语句。它可以执行多次，而无需每次解析和分析的开销。可以用不同的值代替文字`在哪里`子句每次，通过使用占位符。这种替代技术提高了安全性，可以防止某些类型的 SQL 注入攻击。您还可以减少将返回值转换和复制到程序变量的开销。

虽然您可以通过 SQL 语法直接使用准备好的语句，但各种**连接器**具有用于操作准备好的语句的编程接口，并且这些 API 比通过 SQL 更有效。

也可以看看[客户端准备好的语句](glossary.html#glos_client_side_prepared_statement),[连接器](glossary.html#glos_connector),[服务器端准备好的语句](glossary.html#glos_server_side_prepared_statement).

[](<>)首要的关键

[](<>)一组列——隐含地，基于这组列的索引——可以唯一地标识表中的每一行。因此，它必须是不包含任何内容的唯一索引`空值`价值观。

`InnoDB`要求每个表都有这样的索引（也称为**聚集索引**要么**簇索引**)，并根据主键的列值组织表存储。

选择主键值时，请考虑使用任意值（a**合成密钥**) 而不是依赖从其他来源 (a**自然键**）。

也可以看看[聚集索引](glossary.html#glos_clustered_index),[指数](glossary.html#glos_index),[自然键](glossary.html#glos_natural_key),[合成密钥](glossary.html#glos_synthetic_key).

[](<>)主要的

[](<>)命名实体的 Kerberos 术语，例如用户或服务器。

也可以看看[服务主体名称](glossary.html#glos_service_principal_name),[用户主体名称](glossary.html#glos_user_principal_name).

[](<>)过程

[](<>)正在执行的程序的一个实例。操作系统在多个正在运行的进程之间切换，允许一定程度的**并发**.在大多数操作系统上，进程可以包含多个**线程**共享资源的执行。线程之间的上下文切换比进程之间的等效切换更快。

也可以看看[并发](glossary.html#glos_concurrency),[线](glossary.html#glos_thread).

[](<>)伪记录

[](<>)索引中的人工记录，用于**锁定**当前不存在的键值或范围。

也可以看看[无限记录](glossary.html#glos_infimum_record),[锁定](glossary.html#glos_locking),[最高纪录](glossary.html#glos_supremum_record).

[](<>)线程

[](<>)POSIX 线程标准，它定义了用于 Unix 和 Linux 系统上的线程和锁定操作的 API。在 Unix 和 Linux 系统上，`InnoDB`将此实现用于**互斥体**.

也可以看看[互斥体](glossary.html#glos_mutex).

[](<>)清除

[](<>)一种由一个或多个独立后台线程执行的垃圾收集（由[`innodb_purge_threads`](innodb-parameters.html#sysvar_innodb_purge_threads)) 定期运行。清除解析和进程**撤消日志**页面来自**历史列表**用于删除标记为删除的聚集和二级索引记录（由以前的[`删除`](delete.html)语句），并且不再需要**MVCC**要么**回滚**.清除处理后从历史列表中释放撤消日志页面。

也可以看看[历史列表](glossary.html#glos_history_list),[MVCC](glossary.html#glos_mvcc),[回滚](glossary.html#glos_rollback),[撤消日志](glossary.html#glos_undo_log).

[](<>)吹扫缓冲

[](<>)将更改存储到二级索引页面的技术，由`删除`操作，在**更改缓冲区**而不是立即写入更改，以便可以执行物理写入以最小化随机 I/O。（因为删除操作是一个两步过程，所以此操作缓冲通常清除先前标记为删除的索引记录的写入。）它是类型之一**变化缓冲**;其他的是**插入缓冲**和**删除缓冲**.

也可以看看[更改缓冲区](glossary.html#glos_change_buffer),[变化缓冲](glossary.html#glos_change_buffering),[删除缓冲](glossary.html#glos_delete_buffering),[插入缓冲区](glossary.html#glos_insert_buffer),[插入缓冲](glossary.html#glos_insert_buffering).

[](<>)清除滞后

[](<>)的另一个名字`InnoDB` **历史列表**.相关的[`innodb_max_purge_lag`](innodb-parameters.html#sysvar_innodb_max_purge_lag)配置选项。

也可以看看[历史列表](glossary.html#glos_history_list),[清除](glossary.html#glos_purge).

[](<>)清除线程

[](<>)一种**线**内`InnoDB`专用于执行周期性的过程**清除**手术。在 MySQL 5.6 及更高版本中，多个清除线程由[`innodb_purge_threads`](innodb-parameters.html#sysvar_innodb_purge_threads)配置选项。

也可以看看[清除](glossary.html#glos_purge),[线](glossary.html#glos_thread).

[](<>)Python

[](<>)一种用于广泛领域的编程语言，从 Unix 脚本到大型应用程序。包括运行时类型、内置的高级数据类型、面向对象的特性和广泛的标准库。通常用作用其他语言编写的组件之间的“粘合剂”语言。MySQL的**Python API**是开源的**MySQL数据库**模块。

也可以看看[MySQL数据库](glossary.html#glos_mysqldb),[Python API](glossary.html#glos_python_api).

[](<>)Python API

[](<>)

也可以看看[API](glossary.html#glos_api),[Python](glossary.html#glos_python).

### 问

[](<>)询问

[](<>)在**SQL**, 从一个或多个读取信息的操作**表**.根据数据的组织和查询的参数，可以通过咨询来优化查找**指数**.如果涉及多个表，则该查询称为**加入**.

由于历史原因，有时对语句内部处理的讨论使用更广泛意义上的“查询”，包括其他类型的 MySQL 语句，例如**DDL**和**DML**陈述。

也可以看看[DDL](glossary.html#glos_ddl),[DML](glossary.html#glos_dml),[指数](glossary.html#glos_index),[加入](glossary.html#glos_join),[SQL](glossary.html#glos_sql),[桌子](glossary.html#glos_table).

[](<>)查询执行计划

[](<>)优化器做出的关于如何执行**询问**最有效的，包括哪些**指数**或要使用的索引，以及使用的顺序**加入**表。**计划稳定性**涉及对给定查询一致地做出相同的选择。

也可以看看[指数](glossary.html#glos_index), [加入](glossary.html#glos_join), [计划稳定性](glossary.html#glos_plan_stability), [询问](glossary.html#glos_query).

[](<>)查询日志

看[一般查询日志](glossary.html#glos_general_query_log).

[](<>)静默

[](<>)为了减少数据库活动的数量，通常是为诸如[`更改表`](alter-table.html)， 一种**备份**, 或**关掉**.可能涉及也可能不涉及做那么多**冲洗**尽可能，这样**InnoDB**不继续执行后台 I/O。

在 MySQL 5.6 及更高版本中，语法`冲洗表...用于出口`将一些数据写入磁盘`InnoDB`通过复制数据文件可以更轻松地备份这些表。

也可以看看[备份](glossary.html#glos_backup),[冲洗](glossary.html#glos_flush),[InnoDB](glossary.html#glos_innodb),[关掉](glossary.html#glos_shutdown).

### R

[](<>)R-树

[](<>)一种树形数据结构，用于对地理坐标、矩形或多边形等多维数据进行空间索引。

也可以看看[B树](glossary.html#glos_b_tree).

[](<>)袭击

[](<>)“廉价驱动器冗余阵列”的首字母缩写词。跨多个驱动器分散 I/O 操作可实现更大的**并发**在硬件级别，并提高了低级写入操作的效率，否则这些操作将按顺序执行。

也可以看看[并发](glossary.html#glos_concurrency).

[](<>)随机潜水

[](<>)一种快速估计列中不同值数量的技术（列的**基数**）。`InnoDB`从索引中随机抽样页面并使用该数据来估计不同值的数量。

也可以看看[基数](glossary.html#glos_cardinality).

[](<>)原始备份

[](<>)生成的初始备份文件集**MySQL 企业备份**产品，之前的变化反映在**二进制日志**和任何**增量备份**被应用。在这个阶段，文件还没有准备好**恢复**.应用这些更改后，这些文件称为**准备好的备份**.

也可以看看[二进制日志](glossary.html#glos_binary_log),[热备份](glossary.html#glos_hot_backup),[备份\_日志文件](glossary.html#glos_ibbackup_logfile),[增量备份](glossary.html#glos_incremental_backup),[MySQL 企业备份](glossary.html#glos_mysql_enterprise_backup),[准备好的备份](glossary.html#glos_prepared_backup),[恢复](glossary.html#glos_restore).

[](<>)阅读已提交

[](<>)一个**隔离级别**使用一个**锁定**放松之间的一些保护的策略**交易**，为了性能。事务不能看到其他事务未提交的数据，但可以看到当前事务启动后另一个事务提交的数据。因此，一个事务永远不会看到任何坏数据，但它确实看到的数据可能在某种程度上取决于其他事务的时间。

当具有此隔离级别的事务执行时`更新...在哪里`要么`删除...在哪里`操作，其他事务可能需要等待。交易可以执行`选择 ... 更新`， 和`锁定分享模式`操作而不使其他事务等待。

`选择...分享`替换`选择 ... 锁定共享模式`在 MySQL 8.0.1 中，但是`锁定分享模式`仍然可用于向后兼容。

也可以看看[酸](glossary.html#glos_acid), [隔离级别](glossary.html#glos_isolation_level), [锁定](glossary.html#glos_locking), [可重复阅读](glossary.html#glos_repeatable_read), [可序列化](glossary.html#glos_serializable), [交易](glossary.html#glos_transaction).

[](<>)读现象

[](<>)现象如**脏读**, **不可重复读**， 和**幻影**当一个事务读取另一个事务已修改的数据时可能发生的读取。

也可以看看[脏读](glossary.html#glos_dirty_read), [不可重复读](glossary.html#glos_non_repeatable_read), [幻影](glossary.html#glos_phantom).

[](<>)阅读未提交

[](<>)这**隔离级别**在交易之间提供最少的保护。查询采用**锁定**允许他们在通常等待另一笔交易的情况下继续进行的策略。然而，这种额外的性能是以不太可靠的结果为代价的，包括已被其他事务更改但尚未提交的数据（称为**脏读**）。请谨慎使用此隔离级别，并注意结果可能不一致或无法重现，具体取决于其他事务同时执行的操作。通常，具有此隔离级别的事务仅执行查询，而不执行插入、更新或删除操作。

也可以看看[酸](glossary.html#glos_acid),[脏读](glossary.html#glos_dirty_read),[隔离级别](glossary.html#glos_isolation_level),[锁定](glossary.html#glos_locking),[交易](glossary.html#glos_transaction).

[](<>)阅读视图

[](<>)使用的内部快照**MVCC**的机制`InnoDB`.肯定**交易**，取决于他们的**隔离级别**，查看事务（或在某些情况下，语句）开始时的数据值。使用读取视图的隔离级别是**可重复阅读**,**阅读已提交**， 和**阅读未提交**.

也可以看看[隔离级别](glossary.html#glos_isolation_level),[MVCC](glossary.html#glos_mvcc),[阅读已提交](glossary.html#glos_read_committed),[阅读未提交](glossary.html#glos_read_uncommitted),[可重复阅读](glossary.html#glos_repeatable_read),[交易](glossary.html#glos_transaction).

[](<>)预读

[](<>)一种预取一组数据的 I/O 请求**页面**（整个**程度**） 进入**缓冲池**异步，以防很快需要这些页面。线性预读技术根据前一盘区中页面的访问模式预取一个盘区的所有页面。一旦缓冲池中有来自同一范围的一定数量的页面，随机预读技术就会预取一个范围的所有页面。随机预读不是 MySQL 5.5 的一部分，而是在 MySQL 5.6 的控制下重新引入[`innodb_random_read_ahead`](innodb-parameters.html#sysvar_innodb_random_read_ahead)配置选项。

也可以看看[缓冲池](glossary.html#glos_buffer_pool),[程度](glossary.html#glos_extent),[页](glossary.html#glos_page).

[](<>)只读事务

[](<>)一种**交易**可以针对`InnoDB`通过消除一些与创建表有关的簿记**阅读视图**对于每笔交易。只能执行**非锁定读**查询。它可以使用语法显式启动[`开始交易 只读`](commit.html)，或在某些条件下自动。看[第 8.5.3 节，“优化 InnoDB 只读事务”](innodb-performance-ro-txn.html)详情。

也可以看看[非锁定读](glossary.html#glos_non_locking_read),[阅读视图](glossary.html#glos_read_view),[交易](glossary.html#glos_transaction).

[](<>)记录锁

[](<>)一种[锁](glossary.html#glos_lock)在索引记录上。例如`从t中选择c1，其中c1=10用于更新；`防止任何其他事务插入、更新或删除`t、 c1`10岁。对比**间隙锁**和**下一把钥匙锁**.

另见[间隙锁](glossary.html#glos_gap_lock),[锁](glossary.html#glos_lock),[下一把钥匙锁](glossary.html#glos_next_key_lock).

[](<>)重做

[](<>)以记录为单位记录在**重做日志文件**什么时候[DML](glossary.html#glos_dml)语句对`InnoDB`桌子。它是在工作时使用的**事故恢复**要更正不完整数据，请执行以下操作：**交易**.不断增长的**LSN**值表示已通过重做日志的重做数据的累积量。

另见[事故恢复](glossary.html#glos_crash_recovery), [DML](glossary.html#glos_dml), [LSN](glossary.html#glos_lsn), [重做日志文件](glossary.html#glos_redo_log), [交易](glossary.html#glos_transaction).

[](<>)重做日志文件

[](<>)过程中使用的基于磁盘的数据结构**事故恢复**，以更正不完整的**交易**.在正常操作期间，它对更改请求进行编码`InnoDB`表数据，由SQL语句或通过NoSQL接口的低级API调用生成。未完成更新的修改**数据文件**在意外发生之前**关闭**自动重放。

重做日志在物理上表示为一组文件，通常命名为`ib_logfile0`和`ib_日志文件1`.重做日志中的数据按照受影响的记录进行编码；这些数据统称为**重做**.通过重做日志的数据传递由不断增加的**LSN**价值在MySQL 5.6.3中，重做日志的最大大小最初的4GB限制提高到了512GB。

重做日志的磁盘布局受配置选项的影响[`innodb_日志_文件_大小`](innodb-parameters.html#sysvar_innodb_log_file_size), [`innodb_log_group_home_dir`](innodb-parameters.html#sysvar_innodb_log_group_home_dir)，以及（很少）[`innodb_日志_文件_在_组中`](innodb-parameters.html#sysvar_innodb_log_files_in_group)。重做日志操作的性能也会受到**日志缓冲区**，由[`innodb_日志_缓冲区_大小`](innodb-parameters.html#sysvar_innodb_log_buffer_size)配置选项。

另见[事故恢复](glossary.html#glos_crash_recovery), [数据文件](glossary.html#glos_data_files), [ib\_日志文件](glossary.html#glos_ib_logfile), [日志缓冲区](glossary.html#glos_log_buffer), [LSN](glossary.html#glos_lsn), [重做](glossary.html#glos_redo), [关闭](glossary.html#glos_shutdown), [交易](glossary.html#glos_transaction).

[](<>)重做日志归档

[](<>)一`InnoDB`一种功能，启用该功能后，会将重做日志记录按顺序写入存档文件，以避免在备份操作进行期间，备份实用程序无法跟上重做日志生成的速度时可能发生的数据丢失。有关更多信息，请参阅[重做日志归档](innodb-redo-log.html#innodb-redo-log-archiving).

另见[重做日志文件](glossary.html#glos_redo_log).

[](<>)冗余行格式

[](<>)老大`InnoDB` **行格式**.在MySQL 5.0.3之前，它是MySQL中唯一可用的行格式`InnoDB`.从MySQL 5.0.3到MySQL 5.7.8，默认行格式为**契约**.从MySQL 5.7.9开始，默认的行格式由[`innodb_默认_行_格式`](innodb-parameters.html#sysvar_innodb_default_row_format)配置选项，默认设置为**动态**.您仍然可以指定**冗余的**行格式与旧版本兼容`InnoDB`桌子。

有关更多信息，请参阅[第15.10节，“InnoDB行格式”](innodb-row-format.html).

另见[紧凑行格式](glossary.html#glos_compact_row_format), [动态行格式](glossary.html#glos_dynamic_row_format), [行格式](glossary.html#glos_row_format).

[](<>)参照完整性

[](<>)始终以一致的格式维护数据的技术，是**酸的**哲学特别是，通过使用**外键约束**，它可以防止发生更改，或自动将这些更改传播到所有相关表。相关机制包括**唯一约束**，以防止错误插入重复的值**非空约束**，以防止错误插入空白值。

另见[酸的](glossary.html#glos_acid), [外键约束](glossary.html#glos_foreign_key_constraint), [非空约束](glossary.html#glos_not_null_constraint), [唯一约束](glossary.html#glos_unique_constraint).

[](<>)关系的

[](<>)现代数据库系统的一个重要方面。数据库服务器编码并强制执行关系，如一对一、一对多、多对一和唯一性。例如，一个人的地址数据库中可能有零个、一个或多个电话号码；一个电话号码可能与几个家庭成员有关。在金融数据库中，一个人可能需要恰好有一个纳税人ID，任何纳税人ID只能与一个人关联。

数据库服务器可以使用这些关系来防止插入坏数据，并找到查找信息的有效方法。例如，如果一个值被声明为唯一的，服务器可以在找到第一个匹配项后立即停止搜索，并且可以拒绝插入相同值的第二个副本的尝试。

在数据库级别，这些关系通过SQL特性表示，例如**柱**在一张桌子里，独一无二`非空` **约束条件**, **外键**，以及不同类型的联接操作。复杂的关系通常涉及多个表之间的数据分割。通常情况下，数据是**正常化**，这样一对多关系中的重复值只存储一次。

在数学环境中，数据库中的关系来自集合论。例如`或`和`和`a的运算符`哪里`子句代表并集和交集的概念。

另见[酸的](glossary.html#glos_acid), [柱](glossary.html#glos_column), [限制](glossary.html#glos_constraint), [外键](glossary.html#glos_foreign_key), [正常化](glossary.html#glos_normalized).

[](<>)关联

[](<>)在**全文检索**特征，一个数字，表示搜索字符串和数据库中的数据之间的相似性**全文索引**。例如，当您搜索单个单词时，该单词通常与文本中出现多次的行比只出现一次的行更相关。

另见[全文检索](glossary.html#glos_full_text_search), [全文索引](glossary.html#glos_fulltext_index).

[](<>)可重复读取

[](<>)默认值**隔离级别**对于`InnoDB`。它可以防止被查询的任何行被其他行更改**交易**，从而阻塞**不可重复读取**但不是**幻影**阅读。它使用了适度严格的**锁定**策略，使事务中的所有查询都能看到来自同一快照的数据，即事务启动时的数据。

当具有此隔离级别的事务执行时`使现代化哪里`, `删去哪里`, `选择更新`和`锁定共享模式`操作，其他事务可能需要等待。

`选择分享`取代`选择锁定共享模式`在MySQL 8.0.1中，但是`锁定共享模式`保持向后兼容性。

另见[酸的](glossary.html#glos_acid), [一致读取](glossary.html#glos_consistent_read), [隔离级别](glossary.html#glos_isolation_level), [锁定](glossary.html#glos_locking), [幻影](glossary.html#glos_phantom), [交易](glossary.html#glos_transaction).

[](<>)可表演项目

[](<>)剧目是一个应用于角色集的术语。字符集曲目是集合中字符的集合。看见[第10.2.1节，“字符集曲目”](charset-repertoire.html).

[](<>)复制品

[](<>)数据库**服务器**机器**复制**从另一台服务器（服务器）接收更改的拓扑**来源**)并应用相同的更改。因此，它保持了与源代码相同的内容，尽管它可能有些落后。

在MySQL中，副本通常用于灾难恢复，以取代出现故障的源。它们还通常用于测试软件升级和新设置，以确保数据库配置更改不会导致性能或可靠性问题。

副本通常具有较高的工作负载，因为它们处理所有**DML**（写入）从源转发的操作，以及用户查询。为了确保复制副本能够足够快地应用来自源的更改，它们通常具有快速的I/O设备和足够的CPU和内存，以便在同一台服务器上运行多个数据库实例。例如，源可能使用硬盘驱动器存储，而副本使用硬盘驱动器存储**固态硬盘**s

另见[DML](glossary.html#glos_dml), [复制](glossary.html#glos_replication), [服务器](glossary.html#glos_server), [来源](glossary.html#glos_source), [固态硬盘](glossary.html#glos_ssd).

[](<>)复制

[](<>)从数据库发送更改的实践**来源**，发送到一个或多个**复制品**，以便所有数据库都具有相同的数据。这项技术有着广泛的用途，例如负载平衡以实现更好的可扩展性、灾难恢复，以及测试软件升级和配置更改。可以通过名为**基于行的复制**和**基于语句的复制**.

另见[复制品](glossary.html#glos_replica), [基于行的复制](glossary.html#glos_row_based_replication), [来源](glossary.html#glos_source), [基于语句的复制](glossary.html#glos_statement_based_replication).

[](<>)恢复

[](<>)从数据库中放入一组备份文件的过程**MySQL企业备份**MySQL使用的产品。执行此操作可以修复损坏的数据库、返回到某个较早的时间点，或者（在**复制**（上下文）建立一个新的**复制品**.在**MySQL企业备份**产品，此操作由`抄回`选择`mysqlbackup`命令

另见[热备份](glossary.html#glos_hot_backup), [MySQL企业备份](glossary.html#glos_mysql_enterprise_backup), [mysqlbackup命令](glossary.html#glos_mysqlbackup_command), [准备好的备份](glossary.html#glos_prepared_backup), [复制品](glossary.html#glos_replica), [复制](glossary.html#glos_replication).

[](<>)回降

[](<>)A.**SQL**结束一场战争的声明**交易**，撤消事务所做的任何更改。这与**犯罪**，使交易中的任何更改永久生效。

默认情况下，MySQL使用**自动提交**设置，它会在每条SQL语句之后自动发出提交。在使用回滚技术之前，必须更改此设置。

另见[酸的](glossary.html#glos_acid), [自动提交](glossary.html#glos_autocommit), [犯罪](glossary.html#glos_commit), [SQL](glossary.html#glos_sql), [交易](glossary.html#glos_transaction).

[](<>)回滚段

[](<>)包含**撤消日志**.回滚段传统上位于**系统表空间**.从MySQL 5.6开始，回滚段可以驻留在**基于还原表空间**.从MySQL 5.7开始，回滚段也分配给*全局临时表空间*.

另见[全局临时表空间](glossary.html#glos_global_temporary_tablespace), [系统表空间](glossary.html#glos_system_tablespace), [撤消日志](glossary.html#glos_undo_log), [撤销表空间](glossary.html#glos_undo_tablespace).

[](<>)一行

[](<>)由一组**柱**.一组行组成一个**桌子**在内部`InnoDB` **数据文件**每个**页**可以包含一行或多行。

虽然`InnoDB`使用这个术语**行格式**为了与MySQL语法保持一致，行格式是每个表的一个属性，并应用于该表中的所有行。

另见[柱](glossary.html#glos_column), [数据文件](glossary.html#glos_data_files), [页](glossary.html#glos_page), [行格式](glossary.html#glos_row_format), [桌子](glossary.html#glos_table).

[](<>)行格式

[](<>)的磁盘存储格式**排**一个`InnoDB` **桌子**像`InnoDB`获得新功能，如**压缩**，引入了新的行格式，以支持由此带来的存储效率和性能改进。

表的行格式`InnoDB`表由`行格式`选择或由[`innodb_默认_行_格式`](innodb-parameters.html#sysvar_innodb_default_row_format)配置选项（在MySQL 5.7.9中引入）。行格式包括`冗余的`, `契约`, `压缩的`和`动态`.查看`InnoDB`表，发布[`显示表格状态`](show-table-status.html)陈述或质询`InnoDB`表中的元数据[`信息模式`](information-schema.html).

另见[紧凑行格式](glossary.html#glos_compact_row_format), [压缩行格式](glossary.html#glos_compressed_row_format), [压缩](glossary.html#glos_compression), [动态行格式](glossary.html#glos_dynamic_row_format), [冗余行格式](glossary.html#glos_redundant_row_format), [一行](glossary.html#glos_row), [桌子](glossary.html#glos_table).

[](<>)排锁

[](<>)A.**锁**防止另一行以不兼容的方式访问某一行**交易**.同一表中的其他行可以由其他事务自由写入。这是一种**锁定**完成人**DML**手术**InnoDB**桌子。

对比**桌锁**用于[`米萨姆`](myisam-storage-engine.html)，或在**DDL**手术`InnoDB`无法使用的表格**在线DDL**; 这些锁阻止了对表的并发访问。

另见[DDL](glossary.html#glos_ddl), [DML](glossary.html#glos_dml), [InnoDB](glossary.html#glos_innodb), [锁](glossary.html#glos_lock), [锁定](glossary.html#glos_locking), [在线DDL](glossary.html#glos_online_ddl), [桌锁](glossary.html#glos_table_lock), [交易](glossary.html#glos_transaction).

[](<>)基于行的复制

[](<>)一种**复制**事件从**来源**指定如何更改**复制品**.它可以安全地用于系统的所有设置[`innodb_autoinc_锁定模式`](innodb-parameters.html#sysvar_innodb_autoinc_lock_mode)选项

另见[自动增量锁定](glossary.html#glos_auto_increment_locking), [innodb\_汽车公司\_锁\_模式](glossary.html#glos_innodb_autoinc_lock_mode), [复制品](glossary.html#glos_replica), [复制](glossary.html#glos_replication), [来源](glossary.html#glos_source), [基于语句的复制](glossary.html#glos_statement_based_replication).

[](<>)行级锁定

[](<>)这个**锁定**用于**InnoDB**桌子，依靠**行锁**而不是**桌锁**倍数**交易**可以同时修改同一个表。只有当两个事务试图修改同一行时，其中一个事务才会等待另一个事务完成（并释放其行锁）。

另见[InnoDB](glossary.html#glos_innodb), [锁定](glossary.html#glos_locking), [排锁](glossary.html#glos_row_lock), [桌锁](glossary.html#glos_table_lock), [交易](glossary.html#glos_transaction).

[](<>)红宝石

[](<>)一种强调动态类型和面向对象编程的编程语言。有些语法是我们熟悉的**Perl**开发者。

另见[美国石油学会](glossary.html#glos_api), [Perl](glossary.html#glos_perl), [Ruby API](glossary.html#glos_ruby_api).

[](<>)Ruby API

[](<>) `mysql2`，基于**libmysqlclient**API库，可供开发MySQL应用程序的Ruby程序员使用。有关更多信息，请参阅[第29.11节，“MySQL Ruby API”](apis-ruby.html).

另见[libmysql](glossary.html#glos_libmysql), [红宝石](glossary.html#glos_ruby).

[](<>)rw锁

[](<>)低层对象`InnoDB`用于表示和强制执行共享访问**锁**按照一定的规则创建内存中的内部数据结构。对比**互斥器**哪一个`InnoDB`用于表示和强制对内存中的内部数据结构进行独占访问。互斥锁和rw锁统称为**闩锁**.

`rw锁`类型包括`s锁`（共享锁），`x锁`（专用锁），以及`sx锁`（共享独占锁）。

-   一`s锁`提供对公共资源的读取访问。

-   一`x锁`提供对公共资源的写访问，同时不允许其他线程进行不一致的读取。

-   一`sx锁`提供对公共资源的写访问，同时允许其他线程进行不一致的读取。`sx锁`在MySQL 5.7中引入了这些功能，以优化并发性并提高读写工作负载的可伸缩性。

    以下矩阵总结了rw锁类型的兼容性。

|  | *`小号`* | *`SX`* | *`X`* |
| --- | ------ | ------ | ----- |
| *`小号`* | 兼容的 | 兼容的 | 冲突 |
| *`SX`* | 兼容的 | 冲突 | 冲突 |
| *`X`* | 冲突 | 冲突 | 冲突 |

也可以看看[闩锁](glossary.html#glos_latch),[锁](glossary.html#glos_lock),[互斥体](glossary.html#glos_mutex),[性能模式](glossary.html#glos_performance_schema).

### 小号

[](<>)保存点

[](<>)保存点有助于实现嵌套**交易**.它们可用于为作为较大事务的一部分的表提供操作范围。例如，在预订系统中安排旅行可能涉及预订几个不同的航班；如果您想要的航班不可用，您可以**回滚**预订该航段所涉及的更改，而不会回滚已成功预订的较早航班。

也可以看看[回滚](glossary.html#glos_rollback),[交易](glossary.html#glos_transaction).

[](<>)可扩展性

[](<>)向系统添加更多工作和同时发出更多请求的能力，而不会由于超出系统容量限制而导致性能突然下降。软件架构、硬件配置、应用程序编码和工作负载类型都在可扩展性中发挥作用。当系统达到其最大容量时，增加可扩展性的流行技术是**放大**（增加现有硬件或软件的容量）和**向外扩展**（添加新服务器和更多 MySQL 实例）。经常搭配**可用性**作为大规模部署的关键方面。

也可以看看[可用性](glossary.html#glos_availability),[向外扩展](glossary.html#glos_scale_out),[放大](glossary.html#glos_scale_up).

[](<>)向外扩展

[](<>)一种增加技术**可扩展性**通过添加新服务器和更多 MySQL 实例。例如，设置复制、NDB 集群、连接池或其他将工作分散到一组服务器的功能。对比**放大**.

也可以看看[可扩展性](glossary.html#glos_scalability),[放大](glossary.html#glos_scale_up).

[](<>)放大

[](<>)一种增加技术**可扩展性**通过增加现有硬件或软件的容量。例如，增加服务器上的内存并调整与内存相关的参数，例如[`innodb_buffer_pool_size`](innodb-parameters.html#sysvar_innodb_buffer_pool_size)和[`innodb_buffer_pool_instances`](innodb-parameters.html#sysvar_innodb_buffer_pool_instances).对比**向外扩展**.

也可以看看[可扩展性](glossary.html#glos_scalability),[向外扩展](glossary.html#glos_scale_out).

[](<>)图式

[](<>)从概念上讲，模式是一组相互关联的数据库对象，例如表、表列、列的数据类型、索引、外键等。这些对象通过 SQL 语法连接起来，因为列组成表，外键引用表和列，等等。理想情况下，它们也是逻辑连接的，作为统一应用程序或灵活框架的一部分一起工作。例如，**信息\_架构**和**表现\_图式**数据库在其名称中使用“模式”来强调它们所包含的表和列之间的密切关系。

在 MySQL 中，物理上，一个**图式**是一个的同义词**数据库**.您可以替换关键字`架构`代替`数据库`在 MySQL SQL 语法中，例如使用`创建模式`代替`创建数据库`.

其他一些数据库产品也有区别。例如，在 Oracle 数据库产品中，一个**图式**仅代表数据库的一部分：单个用户拥有的表和其他对象。

也可以看看[数据库](glossary.html#glos_database),[信息\_架构](glossary.html#glos_information_schema),[性能模式](glossary.html#glos_performance_schema).

[](<>)SDI

[](<>)“序列化字典信息”的缩写。

[](<>)[](<>)

也可以看看[序列化字典信息 (SDI)](glossary.html#glos_serialized_dictionary_information).

[](<>)搜索索引

[](<>)在 MySQL 中，**全文检索**查询使用一种特殊的索引，即**全文索引**.在 MySQL 5.6.4 及更高版本中，`InnoDB`和`MyISAM`表都支持`全文`索引；以前，这些索引仅适用于`MyISAM`表。

也可以看看[全文检索](glossary.html#glos_full_text_search),[全文索引](glossary.html#glos_fulltext_index).

[](<>)二级索引

[](<>)一种`InnoDB` **指数**表示表列的子集。一个`InnoDB`表可以有零个、一个或多个二级索引。（与**聚集索引**，这对于每个`InnoDB`表，并存储所有表列的数据。）

二级索引可用于满足只需要索引列中的值的查询。对于更复杂的查询，它可用于识别表中的相关行，然后使用聚集索引通过查找来检索这些行。

传统上，创建和删除二级索引会因复制`InnoDB`桌子。这**快速索引创建**功能使两者`创建索引`和`删除索引`语句更快`InnoDB`二级索引。

也可以看看[聚集索引](glossary.html#glos_clustered_index),[快速创建索引](glossary.html#glos_fast_index_creation),[指数](glossary.html#glos_index).

[](<>)部分

[](<>)一个部门内的一个部门`InnoDB` **表空间**.如果表空间类似于目录，则段类似于该目录中的文件。一个细分市场可以增长。可以创建新段。

例如，在一个**每表文件**表空间，表数据在一个段中，每个关联的索引都在自己的段中。这**系统表空间**包含许多不同的段，因为它可以容纳许多表及其关联的索引。在 MySQL 8.0 之前，系统表空间还包括一个或多个**回滚段**用于**撤消日志**.

随着数据的插入和删除，段会增长和缩小。当一个段需要更多空间时，它会扩展一个**程度**（1 兆字节）一次。类似地，当不再需要该范围中的所有数据时，段会释放该范围的空间价值。

也可以看看[程度](glossary.html#glos_extent),[每表文件](glossary.html#glos_file_per_table),[回滚段](glossary.html#glos_rollback_segment),[系统表空间](glossary.html#glos_system_tablespace),[表空间](glossary.html#glos_tablespace),[撤消日志](glossary.html#glos_undo_log).

[](<>)选择性

[](<>)数据分布的一种属性，列中不同值的数量（其**基数**) 除以表中的记录数。高选择性意味着列值相对唯一，可以通过索引高效检索。如果您（或查询优化器）可以预测`在哪里`子句只匹配表中少量（或比例）的行，整体**询问**如果它首先使用索引评估该测试，则往往是有效的。

也可以看看[基数](glossary.html#glos_cardinality),[询问](glossary.html#glos_query).

[](<>)半一致读

[](<>)一种读操作，用于`更新`语句，这是一个组合**阅读已提交**和**一致读**.当一个`更新`语句检查已锁定的行，`InnoDB`将最新提交的版本返回给 MySQL，以便 MySQL 可以确定该行是否匹配`在哪里`的条件`更新`.如果行匹配（必须更新），MySQL 再次读取该行，这次`InnoDB`要么锁定它，要么等待锁定它。这种类型的读操作只有在事务有 READ COMMITTED 时才会发生**隔离级别**.

也可以看看[一致读](glossary.html#glos_consistent_read),[隔离级别](glossary.html#glos_isolation_level),[阅读已提交](glossary.html#glos_read_committed).

[](<>)可序列化

[](<>)这**隔离级别**它使用最保守的锁定策略，以防止任何其他**交易**从插入或更改此事务读取的数据，直到完成。这样，同一个查询可以在一个事务中反复运行，并确保每次都检索到相同的结果集。任何尝试更改自当前事务开始以来由另一个事务提交的数据，都会导致当前事务等待。

这是 SQL 标准指定的默认隔离级别。在实践中，很少需要这种严格程度，因此默认隔离级别为`InnoDB`是下一个最严格的，**可重复阅读**.

也可以看看[酸](glossary.html#glos_acid),[一致读](glossary.html#glos_consistent_read),[隔离级别](glossary.html#glos_isolation_level),[锁定](glossary.html#glos_locking),[可重复阅读](glossary.html#glos_repeatable_read),[交易](glossary.html#glos_transaction).

[](<>)序列化字典信息 (SDI)

[](<>)序列化形式的字典对象元数据。SDI 存储在`JSON`格式。

从 MySQL 8.0.3 开始，SDI 存在于所有`InnoDB`表空间文件，临时表空间和撤消表空间文件除外。表空间文件中 SDI 的存在提供了元数据冗余。例如，可以使用以下方法从表空间文件中提取字典对象元数据[**ibd2sdi**](ibd2sdi.html)实用程序，如果数据字典变得不可用。

为一个`MyISAM`表中，SDI存储在一个`.sdi`架构目录中的元数据文件。需要 SDI 元数据文件才能执行[`导入表`](import-table.html)手术。

也可以看看[每表文件](glossary.html#glos_file_per_table),[通用表空间](glossary.html#glos_general_tablespace),[系统表空间](glossary.html#glos_system_tablespace),[表空间](glossary.html#glos_tablespace).

[](<>)服务器

[](<>)一种连续运行的程序，等待接收来自另一个程序的请求并对其采取行动（**客户**）。因为通常整台计算机专用于运行一个或多个服务器程序（例如数据库服务器、Web 服务器、应用程序服务器或这些的某种组合），所以术语**服务器**也可以指运行服务器软件的计算机。

也可以看看[客户](glossary.html#glos_client),[mysqld](glossary.html#glos_mysqld).

[](<>)服务器端准备好的语句

[](<>)一种**准备好的陈述**由 MySQL 服务器管理。从历史上看，服务器端准备好的语句的问题导致**连接器/J**和**连接器/PHP**开发人员有时会使用**客户端准备好的语句**反而。对于现代 MySQL 服务器版本，建议使用服务器端准备好的语句来提高性能、可伸缩性和内存效率。

也可以看看[客户端准备好的语句](glossary.html#glos_client_side_prepared_statement),[连接器/J](glossary.html#glos_connector_j),[连接器/PHP](glossary.html#glos_connector_php),[准备好的陈述](glossary.html#glos_prepared_statement).

[](<>)服务主体名称

[](<>)表示服务的 Kerberos 命名实体的名称。

也可以看看[主要的](glossary.html#glos_principal).

[](<>)服务票

[](<>)提供对应用程序服务（例如由 Web 或数据库服务器提供的服务）的访问权限的 Kerberos 票证。

[](<>)小服务程序

[](<>)

也可以看看[连接器/J](glossary.html#glos_connector_j).

[](<>)会话临时表空间

[](<>)一种*临时表空间*存储用户创建的*临时表*和由创建的内部临时表*优化器*什么时候`InnoDB`被配置为内部临时表的磁盘存储引擎。

也可以看看[优化器](glossary.html#glos_optimizer),[临时表](glossary.html#glos_temporary_table),[临时表空间](glossary.html#glos_temporary_tablespace).

[](<>)共享锁

[](<>)一种**锁**允许其他**交易**读取锁定的对象，并获取其他共享锁，但不写入。相反的**排他锁**.

也可以看看[排他锁](glossary.html#glos_exclusive_lock),[锁](glossary.html#glos_lock),[交易](glossary.html#glos_transaction).

[](<>)共享表空间

[](<>)另一种引用方式**系统表空间**或一个**通用表空间**.MySQL 5.7 中引入了通用表空间。多个表可以驻留在共享表空间中。只有一个表可以驻留在一个*每表文件*表空间。

也可以看看[通用表空间](glossary.html#glos_general_tablespace),[系统表空间](glossary.html#glos_system_tablespace).

[](<>)尖锐的检查站

[](<>)的过程**冲洗**全部磁盘**肮脏的**其重做条目包含在特定部分的缓冲池页面**重做日志**.发生在之前`InnoDB`重用日志文件的一部分；日志文件以循环方式使用。通常发生在写密集型**工作量**.

也可以看看[脏页](glossary.html#glos_dirty_page),[冲洗](glossary.html#glos_flush),[重做日志](glossary.html#glos_redo_log),[工作量](glossary.html#glos_workload).

[](<>)关掉

[](<>)停止 MySQL 服务器的过程。默认情况下，此过程会清理以下操作**InnoDB**表，所以`InnoDB`可**慢**关闭，但稍后启动很快。如果你跳过清理操作，它是**快速地**关闭，但必须在下次重新启动期间执行清理。

关机模式为`InnoDB`由控制[`innodb_fast_shutdown`](innodb-parameters.html#sysvar_innodb_fast_shutdown)选项。

也可以看看[快速关机](glossary.html#glos_fast_shutdown),[InnoDB](glossary.html#glos_innodb),[缓慢关机](glossary.html#glos_slow_shutdown),[启动](glossary.html#glos_startup).

[](<>)奴隶

看[复制品](glossary.html#glos_replica).

[](<>)慢查询日志

[](<>)一种**日志**用于 MySQL 服务器处理的 SQL 语句的性能调优。日志信息存储在文件中。您必须启用此功能才能使用它。您可以控制记录哪些类别的“慢速”SQL 语句。有关详细信息，请参阅[第 5.4.5 节，“慢查询日志”](slow-query-log.html).

也可以看看[一般查询日志](glossary.html#glos_general_query_log),[日志](glossary.html#glos_log).

[](<>)缓慢关机

[](<>)一种**关掉**做额外的`InnoDB`完成之前的冲洗操作。也被称为**干净关机**.由配置参数指定[`innodb_fast_shutdown=0`](innodb-parameters.html#sysvar_innodb_fast_shutdown)或命令`设置全球 innodb_fast_shutdown=0;`.虽然关机本身可能需要更长的时间，但应该在后续启动时节省时间。

也可以看看[干净关机](glossary.html#glos_clean_shutdown),[快速关机](glossary.html#glos_fast_shutdown),[关掉](glossary.html#glos_shutdown).

[](<>)快照

[](<>)特定时间的数据表示，即使发生变化也保持不变**坚定的**由其他**交易**.被某些人使用**隔离级别**允许**一致读**.

也可以看看[犯罪](glossary.html#glos_commit),[一致读](glossary.html#glos_consistent_read),[隔离级别](glossary.html#glos_isolation_level),[交易](glossary.html#glos_transaction).

[](<>)排序缓冲区

[](<>)在创建过程中用于对数据进行排序的缓冲区`InnoDB`指数。排序缓冲区大小使用[`innodb_sort_buffer_size`](innodb-parameters.html#sysvar_innodb_sort_buffer_size)配置选项。

[](<>)资源

[](<>)数据库服务器机器**复制**处理数据的初始插入、更新和删除请求的场景。这些更改会传播到并在其他服务器上重复，称为**复制品**.

也可以看看[复制品](glossary.html#glos_replica),[复制](glossary.html#glos_replication).

[](<>)空间标识

[](<>)用于唯一标识一个标识符`InnoDB` **表空间**在 MySQL 实例中。的空间 ID**系统表空间**始终为零；此相同 ID 适用于系统表空间或通用表空间内的所有表。每个**每表文件**表空间和**通用表空间**有自己的空间ID。

在 MySQL 5.6 之前，这个硬编码的值在移动中存在困难`InnoDB`MySQL 实例之间的表空间文件。从 MySQL 5.6 开始，您可以使用**可传输表空间**涉及语句的特征`冲洗表...用于出口`,`ALTER TABLE ... 丢弃表空间`， 和`ALTER TABLE ... 导入表空间`.调整空间 ID 所需的信息在**.cfg 文件**您将其与表空间一起复制。看[第 15.6.1.3 节，“导入 InnoDB 表”](innodb-table-import.html)详情。

也可以看看[.cfg 文件](glossary.html#glos_cfg_file),[每表文件](glossary.html#glos_file_per_table),[通用表空间](glossary.html#glos_general_tablespace),[.ibd 文件](glossary.html#glos_ibd_file),[系统表空间](glossary.html#glos_system_tablespace),[表空间](glossary.html#glos_tablespace),[可传输表空间](glossary.html#glos_transportable_tablespace).

[](<>)稀疏文件

[](<>)一种文件类型，它通过将表示空块的元数据写入磁盘而不是写入实际的空白空间来更有效地使用文件系统空间。这`InnoDB` **透明页面压缩**功能依赖于稀疏文件支持。有关详细信息，请参阅[第 15.9.2 节，“InnoDB 页面压缩”](innodb-page-compression.html).

也可以看看[打孔](glossary.html#glos_hole_punching),[透明页面压缩](glossary.html#glos_transparent_page_compression).

[](<>)旋转

[](<>)一种**等待**持续测试资源是否可用的操作。这种技术用于通常只保留很短时间的资源，在这种情况下，在“忙循环”中等待比让线程休眠并执行上下文切换更有效。如果资源在短时间内没有变得可用，则自旋循环停止并使用另一种等待技术。

也可以看看[闩锁](glossary.html#glos_latch),[锁](glossary.html#glos_lock),[互斥体](glossary.html#glos_mutex),[等待](glossary.html#glos_wait).

[](<>)SPN

看[服务主体名称](glossary.html#glos_service_principal_name).

[](<>)春天

[](<>)一种基于 Java 的应用程序框架，旨在通过提供一种配置组件的方式来辅助应用程序设计。

也可以看看[J2EE](glossary.html#glos_j2ee).

[](<>)SQL

[](<>)执行数据库操作的标准结构化查询语言。通常分为几类**DDL**,**DML**， 和**查询**.MySQL 包括一些额外的语句类别，例如**复制**.看[第 9 章，*语言结构*](language-structure.html)对于 SQL 语法的构建块，[第 11 章，*数据类型*](data-types.html)用于 MySQL 表列的数据类型，[第 13 章，*SQL 语句*](sql-statements.html)有关 SQL 语句及其相关类别的详细信息，以及[第 12 章，*函数和运算符*](functions.html)用于在查询中使用的标准和特定于 MySQL 的函数。

也可以看看[DDL](glossary.html#glos_ddl),[DML](glossary.html#glos_dml),[询问](glossary.html#glos_query),[复制](glossary.html#glos_replication).

[](<>)SQL 状态

[](<>)由定义的错误代码**JDBC**标准，用于应用程序使用的异常处理**连接器/J**.

也可以看看[连接器/J](glossary.html#glos_connector_j),[JDBC](glossary.html#glos_jdbc).

[](<>)固态硬盘

[](<>)“固态硬盘”的缩写。一种与传统硬盘驱动器具有不同性能特征的存储设备（**硬盘**)：存储容量更小，随机读取速度更快，没有移动部件，并且有许多影响写入性能的考虑因素。它的性能特征会影响一个吞吐量**磁盘绑定**工作量。

也可以看看[磁盘绑定](glossary.html#glos_disk_bound),[硬盘](glossary.html#glos_hdd).

[](<>)SSL

[](<>)“安全套接字层”的缩写。为应用程序和 MySQL 数据库服务器之间的网络通信提供加密层。

也可以看看[密钥库](glossary.html#glos_keystore),[信任库](glossary.html#glos_truststore).

[](<>)英石

看[服务票](glossary.html#glos_service_ticket).

[](<>)启动

[](<>)启动 MySQL 服务器的过程。通常由列出的程序之一完成[第 4.3 节，“服务器和服务器启动程序”](programs-server.html).相反的**关掉**.

也可以看看[关掉](glossary.html#glos_shutdown).

[](<>)语句拦截器

[](<>)一种**拦截器**用于跟踪、调试或扩充数据库应用程序发出的 SQL 语句。有时也称为**命令拦截器**.

在**爪哇**应用程序使用**连接器/J**，设置这种类型的拦截器涉及实现`com.mysql.jdbc.StatementInterceptorV2`界面，并添加一个`语句拦截器`财产给**连接字符串**.

在**视觉工作室**应用程序使用**连接器/网络**，设置这种类型的拦截器涉及定义一个继承自`基本命令拦截器`类并将该类名指定为连接字符串的一部分。

也可以看看[命令拦截器](glossary.html#glos_command_interceptor),[连接字符串](glossary.html#glos_connection_string),[连接器/J](glossary.html#glos_connector_j),[连接器/网络](glossary.html#glos_connector_net),[拦截器](glossary.html#glos_interceptor),[爪哇](glossary.html#glos_java),[视觉工作室](glossary.html#glos_visual_studio).

[](<>)基于语句的复制

[](<>)一种形式**复制**SQL 语句从哪里发送**资源**并在**复制品**.它需要小心设置[`innodb_autoinc_lock_mode`](innodb-parameters.html#sysvar_innodb_autoinc_lock_mode)选项，以避免潜在的时间问题**自增锁定**.

也可以看看[自增锁定](glossary.html#glos_auto_increment_locking),[innodb\_自动公司\_锁\_模式](glossary.html#glos_innodb_autoinc_lock_mode),[复制品](glossary.html#glos_replica),[复制](glossary.html#glos_replication),[基于行的复制](glossary.html#glos_row_based_replication),[资源](glossary.html#glos_source).

[](<>)统计数据

[](<>)与每个相关的估计值`InnoDB` **桌子**和**指数**, 用于构造一个有效的**查询执行计划**.主要价值观是**基数**（不同值的数量）和表行或索引条目的总数。表中的统计数据代表其中的数据**首要的关键**指数。的统计数据**二级索引**表示该索引覆盖的行。

这些值是估计的，而不是精确计算的，因为在任何时候，不同的**交易**可以在同一个表中插入和删除行。为了防止值被频繁重新计算，您可以启用**持续统计**，其中值存储在`InnoDB`系统表，并且仅在您发出[`分析表`](analyze-table.html)陈述。

你可以控制如何**空值**值在通过计算统计数据时被处理[`innodb_stats_method`](innodb-parameters.html#sysvar_innodb_stats_method)配置选项。

其他类型的统计信息可用于数据库对象和数据库活动，通过**信息\_架构**和**表现\_架构**表。

也可以看看[基数](glossary.html#glos_cardinality),[指数](glossary.html#glos_index),[信息\_架构](glossary.html#glos_information_schema),[空值](glossary.html#glos_null),[性能模式](glossary.html#glos_performance_schema),[持续统计](glossary.html#glos_persistent_statistics),[首要的关键](glossary.html#glos_primary_key),[查询执行计划](glossary.html#glos_query_execution_plan),[二级索引](glossary.html#glos_secondary_index),[桌子](glossary.html#glos_table),[交易](glossary.html#glos_transaction).

[](<>)词干

[](<>)能够根据常见的词根词（例如单数和复数，或过去、现在和将来的动词时态）搜索单词的不同变体。目前支持此功能`MyISAM` **全文检索**功能但不在**FULLTEXT 索引**为了`InnoDB`表。

也可以看看[全文检索](glossary.html#glos_full_text_search),[全文索引](glossary.html#glos_fulltext_index).

[](<>)停用词

[](<>)在一个**全文索引**, 一个被认为足够普通或琐碎以至于从**搜索索引**并在搜索查询中被忽略。不同的配置设置控制停用词处理`InnoDB`和`MyISAM`表。看[第 12.10.4 节，“全文停用词”](fulltext-stopwords.html)详情。

也可以看看[全文索引](glossary.html#glos_fulltext_index),[搜索索引](glossary.html#glos_search_index).

[](<>)存储引擎

[](<>)MySQL 数据库的一个组件，执行存储、更新和查询数据的低级工作。在 MySQL 5.5 及更高版本中，**InnoDB**是新表的默认存储引擎，取代`MyISAM`.不同的存储引擎在设计时会在内存使用与磁盘使用、读取速度与写入速度以及速度与稳健性等因素之间进行不同的权衡。每个存储引擎管理特定的表，所以我们指[`InnoDB`](innodb-storage-engine.html)表，[`MyISAM`](myisam-storage-engine.html)表等。

这**MySQL 企业备份**产品针对备份进行了优化`InnoDB`表。它还可以备份由`MyISAM`和其他存储引擎。

也可以看看[InnoDB](glossary.html#glos_innodb),[MySQL 企业备份](glossary.html#glos_mysql_enterprise_backup),[表类型](glossary.html#glos_table_type).

[](<>)存储生成的列

[](<>)一个列，其值是根据列定义中包含的表达式计算得出的。插入或更新行时会评估和存储列值。存储生成的列需要存储空间并且可以被索引。

对比**虚拟生成列**.

也可以看看[基柱](glossary.html#glos_base_column),[生成的列](glossary.html#glos_generated_column),[虚拟生成列](glossary.html#glos_virtual_generated_column).

[](<>)存储对象

[](<>)存储的程序或视图。

[](<>)存储程序

[](<>)存储的例程（过程或函数）、触发器或事件调度程序事件。

[](<>)存储例程

[](<>)存储过程或函数。

[](<>)严格模式

[](<>)由控制的设置的通用名称[`innodb_strict_mode`](innodb-parameters.html#sysvar_innodb_strict_mode)选项。启用此设置会导致某些通常被视为警告的情况被视为错误。例如，某些无效的选项组合与**文件格式**和**行格式**，通常会产生警告并继续使用默认值，现在导致`创建表`操作失败。[`innodb_strict_mode`](innodb-parameters.html#sysvar_innodb_strict_mode)在 MySQL 5.7 中默认启用。

MySQL 还有一种叫做严格模式的东西。看[第 5.1.11 节，“服务器 SQL 模式”](sql-mode.html).

也可以看看[文件格式](glossary.html#glos_file_format),[innodb\_严格的\_模式](glossary.html#glos_innodb_strict_mode),[行格式](glossary.html#glos_row_format).

[](<>)子列表

[](<>)在表示**缓冲池**，相对较旧和相对较新的页面由不同部分表示**列表**.一组参数控制这些部分的大小以及新旧页面之间的分界点。

也可以看看[缓冲池](glossary.html#glos_buffer_pool),[驱逐](glossary.html#glos_eviction),[列表](glossary.html#glos_list),[LRU](glossary.html#glos_lru).

[](<>)最高纪录

[](<>)一种**伪记录**在一个索引中，代表**差距**高于该指数中的最大值。如果一个事务有一个语句，例如`SELECT ... FROM ... WHERE col > 10 进行更新；`，并且该列中的最大值为 20，它是对最高记录的锁定，可防止其他事务插入更大的值，例如 50、100 等。

也可以看看[差距](glossary.html#glos_gap),[无限记录](glossary.html#glos_infimum_record),[伪记录](glossary.html#glos_pseudo_record).

[](<>)代理键

[](<>)的同义词**合成密钥**.

也可以看看[合成密钥](glossary.html#glos_synthetic_key).

[](<>)合成密钥

[](<>)一个索引列，通常是**首要的关键**，其中的值是任意分配的。经常使用**自动递增**柱子。通过将值视为完全任意的，您可以避免过于严格的规则和错误的应用程序假设。例如，如果员工被批准聘用但从未真正加入，则表示员工编号的数字序列可能会有间隙。或者，如果员工 100 号离开公司后又重新加入，那么他们的招聘日期可能会晚于 500 号员工。数值也会产生较短的可预测长度值。例如，存储表示“Road”、“Boulevard”、“Expressway”等的数字代码比一遍又一遍地重复这些字符串更节省空间。

也被称为**代理键**.对比**自然键**.

也可以看看[自动递增](glossary.html#glos_auto_increment),[自然键](glossary.html#glos_natural_key),[首要的关键](glossary.html#glos_primary_key),[代理键](glossary.html#glos_surrogate_key).

[](<>)系统表空间

[](<>)一个或多个数据文件（**ibdata 文件**) 包含的元数据`InnoDB`- 相关的对象，以及存储区域**更改缓冲区**, 和**双写缓冲区**.它还可能包含表和索引数据`InnoDB`表，如果表是在系统表空间中创建的，而不是**每表文件**要么**通用表空间**.系统表空间中的数据和元数据适用于所有**数据库**在 MySQL 中**实例**.

在 MySQL 5.6.7 之前，默认是保留所有`InnoDB`系统表空间内的表和索引，经常导致这个文件变得非常大。因为系统表空间从不收缩，如果加载大量临时数据然后删除，可能会出现存储问题。在 MySQL 8.0 中，默认为**每表文件**模式，其中每个表及其关联的索引存储在单独的**.ibd 文件**.此默认设置使其更易于使用`InnoDB`依赖的功能`动态的`和`压缩`行格式，例如表格**压缩**, 高效存储**页外栏**, 和大索引键前缀。

将所有表数据保存在系统表空间或单独的`.ibd`文件通常对存储管理有影响。这**MySQL 企业备份**产品可能会备份一小组大文件或许多较小的文件。在具有数千个表的系统上，文件系统操作要处理数千个`.ibd`文件可能会导致瓶颈。

`InnoDB`在 MySQL 5.7.6 中引入了通用表空间，也由`.ibd`文件。通用表空间是使用创建的共享表空间[`创建表空间`](create-tablespace.html)句法。它们可以在数据目录之外创建，能够保存多个表，并支持所有行格式的表。

也可以看看[更改缓冲区](glossary.html#glos_change_buffer),[压缩](glossary.html#glos_compression),[数据字典](glossary.html#glos_data_dictionary),[数据库](glossary.html#glos_database),[双写缓冲区](glossary.html#glos_doublewrite_buffer),[动态行格式](glossary.html#glos_dynamic_row_format),[每表文件](glossary.html#glos_file_per_table),[通用表空间](glossary.html#glos_general_tablespace),[.ibd 文件](glossary.html#glos_ibd_file), [ibdata 文件](glossary.html#glos_ibdata_file), [innodb\_文件\_每\_桌子](glossary.html#glos_innodb_file_per_table), [实例](glossary.html#glos_instance), [MySQL 企业备份](glossary.html#glos_mysql_enterprise_backup), [页外栏](glossary.html#glos_off_page_column), [表空间](glossary.html#glos_tablespace), [撤消日志](glossary.html#glos_undo_log).

### 吨

[](<>)桌子

[](<>)每个 MySQL 表都与一个特定的**存储引擎**. **InnoDB**表有特别的**身体的**和**合乎逻辑的**影响性能的特征，**可扩展性**,**备份**、管理和应用程序开发。

在文件存储方面，`InnoDB`table 属于以下表空间类型之一：

-   共享的`InnoDB` **系统表空间**, 由一个或多个组成**ibdata 文件**.

-   一种**每表文件**表空间，由个人组成**.ibd 文件**.

-   一个共享**通用表空间**, 由一个人组成`.ibd`文件。MySQL 5.7.6 中引入了通用表空间。

**`.ibd`**数据文件包含表和**指数**数据。

`InnoDB`在 file-per-table 表空间中创建的表可以使用**动态的**要么**压缩**行格式。这些行格式使`InnoDB`诸如**压缩**, 高效存储**页外栏**, 和大索引键前缀。通用表空间支持所有行格式。

系统表空间支持使用**多余的**,**袖珍的**， 和**动态的**行格式。系统表空间支持**动态的**MySQL 5.7.6 中添加了行格式。

这**行**一个`InnoDB`表被组织成一个索引结构，称为**聚集索引**, 条目根据**首要的关键**表的列。数据访问针对对主键列进行过滤和排序的查询进行了优化，每个索引都包含每个条目的关联主键列的副本。修改任何主键列的值是一项昂贵的操作。因此一个重要方面`InnoDB`表设计是选择一个主键，其中包含在最重要的查询中使用的列，并保持主键简短，很少更改值。

也可以看看[备份](glossary.html#glos_backup), [聚集索引](glossary.html#glos_clustered_index), [紧凑的行格式](glossary.html#glos_compact_row_format), [压缩行格式](glossary.html#glos_compressed_row_format), [压缩](glossary.html#glos_compression), [动态行格式](glossary.html#glos_dynamic_row_format), [快速创建索引](glossary.html#glos_fast_index_creation), [每表文件](glossary.html#glos_file_per_table), [.ibd 文件](glossary.html#glos_ibd_file), [指数](glossary.html#glos_index), [页外栏](glossary.html#glos_off_page_column), [首要的关键](glossary.html#glos_primary_key), [冗余行格式](glossary.html#glos_redundant_row_format), [排](glossary.html#glos_row),[系统表空间](glossary.html#glos_system_tablespace),[表空间](glossary.html#glos_tablespace).

[](<>)表锁

[](<>)防止任何其他的锁**交易**从访问表。`InnoDB`通过使用诸如**在线 DDL**,**行锁**和**一致读**用于加工**DML**陈述和**查询**.您可以使用 SQL 通过 SQL 创建这样的锁`锁表`陈述;从其他数据库系统或 MySQL 存储引擎迁移的步骤之一是在可行的情况下删除此类语句。

也可以看看[一致读](glossary.html#glos_consistent_read),[DML](glossary.html#glos_dml),[锁](glossary.html#glos_lock),[锁定](glossary.html#glos_locking),[在线 DDL](glossary.html#glos_online_ddl),[询问](glossary.html#glos_query),[行锁](glossary.html#glos_row_lock),[桌子](glossary.html#glos_table),[交易](glossary.html#glos_transaction).

[](<>)表扫描

看[全表扫描](glossary.html#glos_full_table_scan).

[](<>)表统计

看[统计数据](glossary.html#glos_statistics).

[](<>)表类型

[](<>)过时的同义词**存储引擎**.我们指[`InnoDB`](innodb-storage-engine.html)表，[`MyISAM`](myisam-storage-engine.html)表等。

也可以看看[InnoDB](glossary.html#glos_innodb),[存储引擎](glossary.html#glos_storage_engine).

[](<>)表空间

[](<>)可以保存一个或多个数据的数据文件`InnoDB` **表**和相关的**索引**.

这**系统表空间**包含`InnoDB` **数据字典**, 在 MySQL 5.6 之前保留所有其他`InnoDB`默认情况下的表。

这[`innodb_file_per_table`](innodb-parameters.html#sysvar_innodb_file_per_table)在 MySQL 5.6 及更高版本中默认启用的选项允许在自己的表空间中创建表。File-per-table 表空间支持诸如高效存储**页外栏**、表压缩和可传输表空间。看[第 15.6.3.2 节，“File-Per-Table 表空间”](innodb-file-per-table-tablespaces.html)详情。

`InnoDB`在 MySQL 5.7.6 中引入了通用表空间。通用表空间是使用创建的共享表空间[`创建表空间`](create-tablespace.html)句法。它们可以在 MySQL 数据目录之外创建，能够保存多个表，并支持所有行格式的表。

MySQL NDB Cluster 还将其表分组到表空间中。看[第 23.6.10.1 节，“NDB Cluster 磁盘数据对象”](mysql-cluster-disk-data-objects.html)详情。

也可以看看[压缩行格式](glossary.html#glos_compressed_row_format),[数据字典](glossary.html#glos_data_dictionary),[数据文件](glossary.html#glos_data_files),[每表文件](glossary.html#glos_file_per_table),[通用表空间](glossary.html#glos_general_tablespace),[指数](glossary.html#glos_index),[innodb\_文件\_每\_桌子](glossary.html#glos_innodb_file_per_table),[系统表空间](glossary.html#glos_system_tablespace),[桌子](glossary.html#glos_table).

[](<>)Tcl

[](<>)起源于 Unix 脚本世界的一种编程语言。有时由编写的代码扩展**C**,**C++**， 要么**爪哇**.对于开源 Tcl**API**对于 MySQL，请参阅[第 29.12 节，“MySQL Tcl API”](apis-tcl.html).

也可以看看[API](glossary.html#glos_api).

[](<>)临时表

[](<>)一种**桌子**其数据不需要是真正永久的。例如，临时表可能用作复杂计算或转换中的中间结果的存储区域；崩溃后不需要恢复此中间数据​​。数据库产品可以采取各种捷径来提高对临时表的操作性能，通过不那么谨慎地将数据写入磁盘以及在重启时保护数据的其他措施。

有时，数据本身会在设定的时间自动删除，例如事务结束或会话结束时。对于某些数据库产品，表本身也会自动删除。

也可以看看[桌子](glossary.html#glos_table).

[](<>)临时表空间

[](<>) `InnoDB`使用两种类型的临时表空间。*会话临时表空间*存储用户创建的临时表和优化器创建的内部临时表。这*全局临时表空间*商店*回滚段*用于对用户创建的临时表所做的更改。

也可以看看[全局临时表空间](glossary.html#glos_global_temporary_tablespace),[会话临时表空间](glossary.html#glos_session_temporary_tablespace),[临时表](glossary.html#glos_temporary_table).

[](<>)文本集合

[](<>)包含在一个列中的一组列**全文索引**.

也可以看看[全文索引](glossary.html#glos_fulltext_index).

[](<>)TGS

[](<>)授予 Kerberos 票证的服务器。TGS 也可以指票据授予服务器提供的票据授予服务。

也可以看看[票证授予服务器](glossary.html#glos_ticket_granting_server).

[](<>)TGT

看[票证](glossary.html#glos_ticket_granting_ticket).

[](<>)线

[](<>)一种处理单元，通常比**过程**，允许更大**并发**.

也可以看看[并发](glossary.html#glos_concurrency),[主线程](glossary.html#glos_master_thread),[过程](glossary.html#glos_process),[线程](glossary.html#glos_pthreads).

[](<>)票证授予服务器

[](<>)在 Kerberos 中，提供票证的服务器。票证授予服务器 (TGS) 与身份验证服务器 (AS) 组合构成密钥分发中心 (KDC)。

TGS 也可以指票据授予服务器提供的票据授予服务。

也可以看看[认证服务器](glossary.html#glos_authentication_server),[关键配送中心](glossary.html#glos_key_distribution_center).

[](<>)票证

[](<>)在 Kerberos 中，授予票证的票证会提交给票证授予服务器 (TGS)，以获取服务票证以进行服务访问。

也可以看看[票证授予服务器](glossary.html#glos_ticket_granting_server).

[](<>)雄猫

[](<>)一个开源的**J2EE**应用服务器，实现 Java Servlet 和 JavaServer Pages 编程技术。由 Web 服务器和 Java servlet 容器组成。与 MySQL 一起使用，通常与**连接器/J**.

也可以看看[J2EE](glossary.html#glos_j2ee).

[](<>)撕裂的页面

[](<>)由于 I/O 设备配置和硬件故障的组合而可能发生的错误情况。如果数据以小于`InnoDB` **页面大小**（默认情况下，16KB），写入时发生硬件故障可能导致只有部分页面存储到磁盘。这`InnoDB` **双写缓冲区**防范这种可能性。

也可以看看[双写缓冲区](glossary.html#glos_doublewrite_buffer).

[](<>)TPS

[](<>)“”的缩写**交易**每秒”，有时在基准测试中使用的计量单位。它的价值取决于**工作量**由特定的基准测试表示，并结合您控制的因素，例如硬件容量和数据库配置。

也可以看看[交易](glossary.html#glos_transaction),[工作量](glossary.html#glos_workload).

[](<>)交易

[](<>)事务是工作的原子单元，可以**坚定的**要么**回滚**.当一个事务对数据库进行多次更改时，要么在事务提交时所有更改都成功，要么在事务回滚时撤消所有更改。

数据库事务，由`InnoDB`, 具有由首字母缩写词统称为的属性**酸**，用于原子性、一致性、隔离性和持久性。

也可以看看[酸](glossary.html#glos_acid),[犯罪](glossary.html#glos_commit),[隔离级别](glossary.html#glos_isolation_level),[锁](glossary.html#glos_lock),[回滚](glossary.html#glos_rollback).

[](<>)交易编号

[](<>)与每个关联的内部字段**排**.该字段在物理上由[`插入`](insert.html),[`更新`](update.html)， 和[`删除`](delete.html)记录哪些操作**交易**已锁定该行。

也可以看看[隐式行锁](glossary.html#glos_implicit_row_lock),[排](glossary.html#glos_row),[交易](glossary.html#glos_transaction).

[](<>)透明页面压缩

[](<>)MySQL 5.7.8 中添加的一项功能，允许页面级压缩`InnoDB`驻留在的表**每表文件**表空间。通过指定`压缩`属性与[`创建表`](create-table.html)要么[`更改表`](alter-table.html).有关详细信息，请参阅[第 15.9.2 节，“InnoDB 页面压缩”](innodb-page-compression.html).

也可以看看[每表文件](glossary.html#glos_file_per_table),[打孔](glossary.html#glos_hole_punching),[稀疏文件](glossary.html#glos_sparse_file).

[](<>)可传输表空间

[](<>)一个功能，允许**表空间**从一个实例移动到另一个实例。传统上，这是不可能的`InnoDB`表空间，因为所有表数据都是**系统表空间**.在 MySQL 5.6 及更高版本中，[`冲洗表...用于出口`](flush.html#flush-tables-for-export-with-list)语法准备一个`InnoDB`用于复制到另一台服务器的表；跑步[`ALTER TABLE ... 丢弃表空间`](alter-table.html)和[`ALTER TABLE ... 导入表空间`](alter-table.html)在另一个服务器上将复制的数据文件带到另一个实例中。独立**.cfg 文件**, 与**.ibd 文件**, 用于更新表元数据（例如**空间标识**) 导入表空间。看[第 15.6.1.3 节，“导入 InnoDB 表”](innodb-table-import.html)使用信息。

也可以看看[.cfg 文件](glossary.html#glos_cfg_file),[.ibd 文件](glossary.html#glos_ibd_file),[空间标识](glossary.html#glos_space_id),[系统表空间](glossary.html#glos_system_tablespace),[表空间](glossary.html#glos_tablespace).

[](<>)故障排除

[](<>)确定问题根源的过程。用于解决 MySQL 问题的一些资源包括：

-   [第2.10.2.1节，“启动MySQL服务器的故障排除”](starting-server-troubleshooting.html)

-   [第6.2.22节，“连接到MySQL的故障排除”](problems-connecting.html)

-   [第B.3.3.2节，“如何重置根密码”](resetting-permissions.html)

-   [B.3.2节，“使用MySQL程序时的常见错误”](common-errors.html)

-   [第15.21节，“InnoDB故障排除”](innodb-troubleshooting.html).

[](<>)截断

[](<>)A.**DDL**删除表的全部内容，同时保留表和相关索引不变的操作。对比**滴**.虽然从概念上讲，它的结果与`删去`声明没有`哪里`条款规定，它在幕后的运作方式不同：`InnoDB`创建一个新的空表，删除旧表，然后重命名新表以替换旧表。因为这是一个DDL操作，所以不能**后退**.

如果被截断的表包含**外键**当引用另一个表时，截断操作使用较慢的操作方法，一次删除一行，以便根据需要删除被引用表中的相应行`关于删除级联`条款（MySQL 5.5及更高版本不允许这种较慢的截断形式，如果涉及外键，则返回一个错误`删去`而不是声明。

另见[DDL](glossary.html#glos_ddl),[滴](glossary.html#glos_drop), [外键](glossary.html#glos_foreign_key), [回降](glossary.html#glos_rollback).

[](<>)信托商店

[](<>)

另见[SSL](glossary.html#glos_ssl).

[](<>)元组

[](<>)表示一组有序元素的技术术语。它是一个抽象概念，用于数据库理论的正式讨论。在数据库字段中，元组通常由表行的列表示。它们也可以由查询的结果集来表示，例如，只检索表中某些列的查询，或从联接表中检索列的查询。

另见[光标](glossary.html#glos_cursor).

[](<>)两阶段提交

[](<>)作为分布式系统一部分的操作**交易**，在**XA**规格（有时缩写为2PC。）当多个数据库参与事务时，所有数据库**犯罪**更改或所有数据库**后退**变化。

另见[犯罪](glossary.html#glos_commit), [回降](glossary.html#glos_rollback), [交易](glossary.html#glos_transaction), [XA](glossary.html#glos_xa).

### U

[](<>)打开

[](<>)在整个生命周期内维护的数据**交易**，记录所有更改，以便在发生错误时可以撤消这些更改**回降**活动它储存在**撤消日志**要么在**系统表空间**（在MySQL 5.7或更早版本中）或单独的**基于还原表空间**.从MySQL 8.0开始，默认情况下，undo日志驻留在undo表空间中。

另见[回降](glossary.html#glos_rollback), [回滚段](glossary.html#glos_rollback_segment), [系统表空间](glossary.html#glos_system_tablespace), [交易](glossary.html#glos_transaction), [撤消日志](glossary.html#glos_undo_log), [撤销表空间](glossary.html#glos_undo_tablespace).

[](<>)撤销缓冲区

看见[撤消日志](glossary.html#glos_undo_log).

[](<>)撤消日志

[](<>)一种存储区，用于保存由active Directory修改的数据副本**交易**.如果另一笔交易需要查看原始数据（作为交易的一部分）**一致读取**操作），从该存储区域检索未修改的数据。

在MySQL 5.6和MySQL 5.7中，可以使用[`innodb_undo_表空间`](innodb-parameters.html#sysvar_innodb_undo_tablespaces)变量中有撤消日志**基于还原表空间**，可以放置在另一个存储设备上，例如**固态硬盘**.在MySQL 8.0中，undo日志驻留在两个默认的undo表空间中，这两个表空间是在MySQL初始化时创建的，可以使用[`创建撤消表空间`](create-tablespace.html)语法。

撤销日志被拆分为单独的部分**插入撤消缓冲区**还有**更新撤消缓冲区**.

另见[一致读取](glossary.html#glos_consistent_read), [回滚段](glossary.html#glos_rollback_segment), [固态硬盘](glossary.html#glos_ssd),[系统表空间](glossary.html#glos_system_tablespace),[交易](glossary.html#glos_transaction),[撤消表空间](glossary.html#glos_undo_tablespace).

[](<>)撤消日志段

[](<>)一个集合**撤消日志**.撤消日志段存在于**回滚段**.撤消日志段可能包含来自多个事务的撤消日志。undo log 段一次只能被一个事务使用，但在事务释放后可以重复使用**犯罪**要么**回滚**.也可以称为“撤消段”。

也可以看看[犯罪](glossary.html#glos_commit),[回滚](glossary.html#glos_rollback),[回滚段](glossary.html#glos_rollback_segment),[撤消日志](glossary.html#glos_undo_log).

[](<>)撤消表空间

[](<>)撤消表空间包含**撤消日志**.撤消日志存在于**撤消日志段**, 包含在**回滚段**.回滚段传统上驻留在系统表空间中。从 MySQL 5.6 开始，回滚段可以驻留在 undo 表空间中。在 MySQL 5.6 和 MySQL 5.7 中，undo 表空间的数量由[`innodb_undo_tablespaces`](innodb-parameters.html#sysvar_innodb_undo_tablespaces)配置选项。在 MySQL 8.0 中，初始化 MySQL 实例时会创建两个默认的 undo 表空间，并且可以使用创建额外的 undo 表空间[`创建撤销表空间`](create-tablespace.html)句法。

有关详细信息，请参阅[第 15.6.3.4 节，“撤消表空间”](innodb-undo-tablespaces.html).

也可以看看[回滚段](glossary.html#glos_rollback_segment),[系统表空间](glossary.html#glos_system_tablespace),[撤消日志](glossary.html#glos_undo_log),[撤消日志段](glossary.html#glos_undo_log_segment).

[](<>)统一码

[](<>)以灵活和标准化的方式支持国家字符、字符集、代码页和其他国际化方面的系统。

Unicode 支持是**ODBC**标准。**连接器/ODBC**5.1 是一个 Unicode 驱动程序，而 Connector/ODBC 3.51 是一个**ANSI**司机。

也可以看看[ANSI](glossary.html#glos_ansi),[连接器/ODBC](glossary.html#glos_connector_odbc),[ODBC](glossary.html#glos_odbc).

[](<>)唯一约束

[](<>)一种**约束**断言一列不能包含任何重复值。按照**关系**代数，它用于指定一对一的关系。为了提高检查是否可以插入值的效率（即该值不存在于列中），底层支持唯一约束**唯一索引**.

也可以看看[约束](glossary.html#glos_constraint),[关系](glossary.html#glos_relational),[唯一索引](glossary.html#glos_unique_index).

[](<>)唯一索引

[](<>)一列或一组列的索引**唯一约束**.因为已知索引不包含任何重复值，某些类型的查找和计数操作比普通类型的索引更有效。大多数针对此类索引的查找只是为了确定某个值是否存在。索引中的值的数量与表中的行数相同，或者至少与关联列的非空值的行数相同。

**更改缓冲**优化不适用于唯一索引。作为一种解决方法，您可以临时设置`unique_checks=0`在将批量数据加载到`InnoDB`桌子。

也可以看看[基数](glossary.html#glos_cardinality),[变化缓冲](glossary.html#glos_change_buffering),[唯一约束](glossary.html#glos_unique_constraint),[唯一键](glossary.html#glos_unique_key).

[](<>)唯一键

[](<>)一组列（一个或多个）包括**唯一索引**.当你可以定义一个`在哪里`如果条件恰好匹配一行，并且查询可以使用关联的唯一索引，则可以非常有效地执行查找和错误处理。

也可以看看[基数](glossary.html#glos_cardinality),[唯一约束](glossary.html#glos_unique_constraint),[唯一索引](glossary.html#glos_unique_index).

[](<>)UPN

看[用户主体名称](glossary.html#glos_user_principal_name).

[](<>)用户主体名称

[](<>)代表用户的 Kerberos 命名实体的名称。

也可以看看[主要的](glossary.html#glos_principal).

### 五

[](<>)变长类型

[](<>)一种可变长度的数据类型。[`VARCHAR`](char.html),[`变量`](binary-varbinary.html)， 和[`斑点`](blob.html)和[`文本`](blob.html)类型是可变长度类型。

`InnoDB`将长度大于等于768字节的定长字段视为变长字段，可以存储**离页**.例如，一个`字符(255)`如果字符集的最大字节长度大于 3，则列可以超过 768 个字节，因为它是`utf8mb4`.

也可以看看[页外栏](glossary.html#glos_off_page_column),[溢出页面](glossary.html#glos_overflow_page).

[](<>)受害者

[](<>)这**交易**自动选择为**回滚**当一个**僵局**被检测到。`InnoDB`回滚更新最少行的事务。

**死锁检测**可以使用禁用[`innodb_deadlock_detect`](innodb-parameters.html#sysvar_innodb_deadlock_detect)配置选项。

也可以看看[僵局](glossary.html#glos_deadlock),[死锁检测](glossary.html#glos_deadlock_detection),[innodb\_锁\_等待\_暂停](glossary.html#glos_innodb_lock_wait_timeout),[交易](glossary.html#glos_transaction).

[](<>)看法

[](<>)调用时生成结果集的存储查询。视图充当虚拟表。

[](<>)虚拟列

看[虚拟生成列](glossary.html#glos_virtual_generated_column).

[](<>)虚拟生成列

[](<>)一个列，其值是根据列定义中包含的表达式计算得出的。不存储列值，而是在读取行时评估，紧随任何`前`触发器。虚拟生成的列不占用存储空间。`InnoDB`支持虚拟生成列的二级索引。

对比**存储生成的列**.

也可以看看[基柱](glossary.html#glos_base_column),[生成的列](glossary.html#glos_generated_column),[存储生成的列](glossary.html#glos_stored_generated_column).

[](<>)虚拟索引

[](<>)虚拟索引是**二级索引**在一个或多个**虚拟生成列**或虚拟生成列和常规列或存储生成列的组合。有关详细信息，请参阅[第 13.1.20.9 节，“二级索引和生成的列”](create-table-secondary-indexes.html).

也可以看看[二级索引](glossary.html#glos_secondary_index),[存储生成的列](glossary.html#glos_stored_generated_column),[虚拟生成列](glossary.html#glos_virtual_generated_column).

[](<>)视觉工作室

[](<>)有关受支持的 Visual Studio 版本，请参阅以下参考资料：

-   连接器/网络：[连接器/NET 版本](https://dev.mysql.com/doc/connector-net/en/connector-net-versions.html)

-   连接器/C++ 8.0：[平台支持和先决条件](https://dev.mysql.com/doc/connector-cpp/8.0/en/connector-cpp-introduction.html#connector-cpp-prerequisites)

也可以看看[连接器/C++](glossary.html#glos_connector_c__),[连接器/网络](glossary.html#glos_connector_net).

### W

[](<>)等待

[](<>)当一个操作，比如获取一个**锁**,**互斥体**， 要么**闩锁**, 不能立即完成,`InnoDB`暂停并再次尝试。暂停的机制非常精细，以至于这个操作有自己的名字，**等待**.使用内部组合暂停单个线程`InnoDB`调度、操作系统`等待（）`通话和短时**旋转**循环。

在负载重且事务较多的系统上，您可以使用`显示 INNODB 状态`命令或**性能模式**确定线程是否花费了太多时间等待，如果是，如何改进**并发**.

也可以看看[并发](glossary.html#glos_concurrency),[闩锁](glossary.html#glos_latch),[锁](glossary.html#glos_lock),[互斥体](glossary.html#glos_mutex),[性能模式](glossary.html#glos_performance_schema),[旋转](glossary.html#glos_spin).

[](<>)热备份

[](<>)一种**备份**在数据库运行时进行，但这会限制备份过程中的某些数据库操作。例如，表可能变成只读的。对于繁忙的应用程序和网站，您可能更喜欢**热备份**.

也可以看看[备份](glossary.html#glos_backup),[冷备份](glossary.html#glos_cold_backup),[热备份](glossary.html#glos_hot_backup).

[](<>)暖身

[](<>)在典型的情况下运行系统**工作量**启动后一段时间，使**缓冲池**和其他内存区域被填满，就像在正常情况下一样。当 MySQL 服务器重新启动或承受新的工作负载时，此过程会随着时间的推移自然发生。

通常，您在运行性能测试之前运行工作负载一段时间以预热缓冲池，以确保多次运行的结果一致；否则，在第一次运行期间，性能可能会人为地降低。

在 MySQL 5.6 中，您可以通过启用[`innodb_buffer_pool_dump_at_shutdown`](innodb-parameters.html#sysvar_innodb_buffer_pool_dump_at_shutdown)和[`innodb_buffer_pool_load_at_startup`](innodb-parameters.html#sysvar_innodb_buffer_pool_load_at_startup)配置选项，以在重新启动后将缓冲池的内容带回内存。这些选项在 MySQL 5.7 中默认启用。看[第 15.8.3.6 节，“保存和恢复缓冲池状态”](innodb-preload-buffer-pool.html).

也可以看看[缓冲池](glossary.html#glos_buffer_pool),[工作量](glossary.html#glos_workload).

[](<>)工作量

[](<>)组合和体积**SQL**和其他数据库操作，由数据库应用程序在典型或高峰使用期间执行。您可以在性能测试期间使数据库承受特定的工作负载，以识别**瓶颈**，或在容量规划期间。

也可以看看[瓶颈](glossary.html#glos_bottleneck),[CPU 密集型](glossary.html#glos_cpu_bound),[磁盘绑定](glossary.html#glos_disk_bound),[SQL](glossary.html#glos_sql).

[](<>)写结合

[](<>)一种优化技术，可在以下情况下减少写入操作**脏页**是**酡**来自`InnoDB` **缓冲池**.如果页面中的一行被多次更新，或者同一页面上的多行被更新，则所有这些更改都将在一次写入操作中存储到数据文件中，而不是每次更改一次写入。

也可以看看[缓冲池](glossary.html#glos_buffer_pool),[脏页](glossary.html#glos_dirty_page),[冲洗](glossary.html#glos_flush).

### X

[](<>)XA

[](<>)用于协调分布式的标准接口**交易**，允许多个数据库参与一个事务，同时维护**酸**遵守。有关完整详细信息，请参阅[第 13.3.8 节，“XA 事务”](xa.html).

默认情况下启用 XA 分布式事务支持。

也可以看看[酸](glossary.html#glos_acid),[二进制日志](glossary.html#glos_binary_log),[犯罪](glossary.html#glos_commit),[交易](glossary.html#glos_transaction),[两阶段提交](glossary.html#glos_two_phase_commit).

### 是

[](<>)年轻

[](<>)一个特点**页**在里面`InnoDB` **缓冲池**意味着它最近被访问过，所以在缓冲池数据结构中移动，所以它不是**酡**太早了**LRU**算法。这个词用在一些**信息\_架构**与缓冲池相关的表的列名。

也可以看看[缓冲池](glossary.html#glos_buffer_pool), [冲洗](glossary.html#glos_flush), [信息\_架构](glossary.html#glos_information_schema), [LRU](glossary.html#glos_lru), [页](glossary.html#glos_page).
