MySQL 5.6参考手册/ MySQL术语表

MySQL术语表

这些术语通常用于有关MySQL数据库服务器的信息中。这个术语表最初是关于InnoDB存储引擎的术语参考,大部分的定义都与InnoDB相关。

一个

. arm文件

元数据存档表。与.ARZ文件.控件生成的备份中总是包含具有此扩展名的文件mysqlbackup命令的MySQL企业备份产品。

另请参阅.ARZ文件MySQL企业备份mysqlbackup命令

.ARZ文件

存档表的数据。与. arm文件.控件生成的备份中总是包含具有此扩展名的文件mysqlbackup命令的MySQL企业备份产品。

另请参阅. arm文件MySQL企业备份mysqlbackup命令

原子性、一致性、隔离性和持久性的缩写。这些属性在数据库系统中都是可取的,并且都与a的概念密切相关事务.的交易特性InnoDB坚持ACID原则。

事务是原子可以是工作单位承诺回滚.当事务对数据库进行多次更改时,要么提交事务时所有更改都成功,要么回滚事务时所有更改都撤销。

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

事务在执行过程中相互保护(隔离);它们不能相互干扰,也不能看到对方未提交的数据。这种隔离是通过锁定机制。有经验的用户可以调整隔离级别,以更少的保护换取更高的性能和并发性当他们可以确定交易真的不互相干扰时。

事务的结果是持久的:一旦提交操作成功,该事务所做的更改就不会发生电源故障、系统崩溃、竞争条件或许多非数据库应用程序容易遇到的其他潜在危险。持久性通常涉及到写入磁盘存储,具有一定的冗余来防止写入操作期间电源故障或软件崩溃。(在InnoDB,doublewrite缓冲协助耐久性)。

另请参阅原子提交并发性doublewrite缓冲隔离级别锁定回滚事务

自适应冲洗

一个算法InnoDB表平滑了引入的I/O开销检查点.而不是冲洗所有的修改页面缓冲池数据文件MySQL会定期刷新一小部分修改过的页面。自适应冲洗算法根据冲洗速度和速度来估计执行这些周期性冲洗的最佳速率,从而扩展了这个过程重做生成的信息。

另请参阅缓冲池检查点数据文件冲洗InnoDB页面重做日志

自适应哈希索引

一个优化InnoDB可以加快查找速度的表而且算子,通过构造一个散列索引在内存中。MySQL监控索引搜索InnoDB表,如果查询可以从哈希索引中受益,它会自动为索引构建一个哈希索引页面经常被访问。从某种意义上说,自适应哈希索引在运行时配置MySQL,以利用充足的主存,更接近主存数据库的架构。控件控制此特性innodb_adaptive_hash_index配置选项。由于此特性对某些工作负载有利,而对其他工作负载不利,并且用于散列索引的内存保留在缓冲池,通常您应该启用和禁用此特性进行基准测试。

哈希索引总是基于现有的b -树表上的索引。MySQL可以在为b -树定义的键的任意长度的前缀上构建哈希索引,这取决于对索引的搜索模式。哈希索引可以是局部的;整个b树索引不需要缓存在缓冲池中。

在MySQL 5.6及更高版本中,另一种利用快速单值查找的方法是InnoDB表是使用的InnoDBmemcached插件。看到b -树缓冲池散列索引memcached页面二级索引

ADO。网

一个对象关系映射(ORM)框架,用于使用。net技术构建的应用程序,例如ASP。网.这些应用程序可以通过连接器/净组件。

另请参阅netASP.net连接器/净莫诺Visual Studio

AIO

缩写异步I / O.你可能在InnoDB消息或关键词。

另请参阅异步I / O

ANSI

ODBC,一种支持字符集和其他国际化方面的替代方法。与Unicode连接器/ ODBC3.51是ANSI驱动程序,而Connector/ODBC 5.1是Unicode驱动程序。

另请参阅连接器/ ODBCODBCUnicode

羚羊

原代号InnoDB文件格式.它支持冗余而且紧凑的行格式,但不是更新的动态而且压缩中可用的行格式梭鱼文件格式。

另请参阅梭鱼紧凑行格式压缩行格式动态行格式文件格式innodb_file_format冗余行格式

API

api提供对MySQL协议和MySQL资源的低级访问客户端项目。方法提供的更高级别访问连接器

另请参阅C API客户端连接器本机C APIPerl APIPHP APIPython APIRuby API

应用程序编程接口

一组函数或过程。API为函数、过程、参数和返回值提供一组稳定的名称和类型。

应用

当备份产生MySQL企业备份产品不包含在备份过程中发生的最新更改,则更新备份文件以包含这些更改的过程称为应用的一步。属性指定的运用原木选择的mysqlbackup命令。

在应用更改之前,我们将这些文件称为原始备份.应用更改之后,我们将这些文件称为准备备份.更改记录在ibbackup_logfile文件;一旦apply步骤完成,这个文件就不再需要了。

另请参阅热备份ibbackup_logfileMySQL企业备份准备备份原始备份

ASP.net

开发基于web的应用程序的框架net技术和语言。这些应用程序可以通过连接器/净组件。

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

另请参阅netADO。网连接器/净莫诺PHPVisual Studio

组装

中编译代码的库net系统,通过连接器/净.存储在广汽允许不存在命名冲突的版本控制。

另请参阅net广汽

异步I / O

一种I/O操作,允许在I/O完成之前进行其他处理。也被称为非阻塞I / O和缩写AIOInnoDB将这种类型的I/O用于某些可以并行运行而不影响数据库可靠性的操作,例如将页面读入缓冲池虽然还没有被要求,但可能很快就会需要。

从历史上看,InnoDB只在Windows系统上使用异步I/O。从InnoDB Plugin 1.1和MySQL 5.5开始,InnoDB在Linux系统上使用异步I/O。此更改引入了一个依赖项libaio.Linux系统上的异步I/O是使用innodb_use_native_aio选项,默认启用。在其他类unix系统上,InnoDB只使用同步I/O。

另请参阅缓冲池非阻塞I / O

原子

在SQL上下文中,交易工作单元是否完全成功(什么时候承诺)或根本没有影响(当回滚).事务的不可分割(“原子”)属性是一个的缩写

另请参阅提交回滚事务

原子DDL

一个原子DDL语句是将数据字典更新,存储引擎操作和二进制日志将与DDL操作关联的数据写入单个原子事务。即使服务器在操作期间暂停,事务也会被完全提交或回滚。MySQL 8.0中增加了对原子DDL的支持。有关更多信息,请参见原子数据定义语句支持

另请参阅二进制日志数据字典DDL存储引擎

原子指令

由CPU提供的特殊指令,确保低级别的关键操作不被中断。

自动递增

控件指定的表列的属性AUTO_INCREMENT关键字),自动在列中添加值的升序序列。

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

对于基于语句的复制,自动递增的列可能会有问题,因为由于计时问题,在副本上重播语句可能不会产生与源上相同的列值集。当具有自动递增的主键时,只能对该设置使用基于语句的复制innodb_autoinc_lock_mode = 1.如果你有innodb_autoinc_lock_mode = 2,它允许insert操作具有更高的并发性基于行的复制而不是statement-based复制.设置innodb_autoinc_lock_mode = 0除非出于兼容性目的,否则不应使用。

连续锁定模式(innodb_autoinc_lock_mode = 1)是MySQL 8.0.3之前的默认设置。从MySQL 8.0.3开始,交错锁模式(innodb_autoinc_lock_mode = 2)是默认值,它反映了默认复制类型从基于语句复制到基于行复制的变化。

另请参阅自动递增锁定innodb_autoinc_lock_mode主键基于行的复制statement-based复制

自动递增锁定

a的便利自动递增主键涉及对并发性的一些权衡。在最简单的情况下,如果一个事务正在向表中插入值,那么任何其他事务都必须等待对该表进行自己的插入,以便第一个事务插入的行接收连续的主键值。InnoDB包括优化和innodb_autoinc_lock_mode选项,以便您可以配置可预测的自动递增值序列和最大值之间的最佳平衡并发性对于插入操作。

另请参阅自动递增并发性innodb_autoinc_lock_mode

自动提交

一种导致提交操作后SQL声明。不建议使用该模式InnoDB表与交易它跨越了几个表述。它可以帮助性能只读事务InnoDB表,使开销最小化锁定和代撤销特别是MySQL 5.6.4及以上版本。它也适用于工作MyISAM表,其中事务不适用。

另请参阅提交锁定只读事务SQL事务撤销

可用性

能够处理主机上的故障,并在必要时从故障中恢复,包括MySQL、操作系统或可能导致停机的硬件和维护活动的故障。通常搭配可伸缩性作为大规模部署的关键方面。

另请参阅可伸缩性

B

b -树

一种树状数据结构,广泛用于数据库索引中。该结构在任何时候都保持排序,支持精确匹配(等于操作符)和范围(例如,大于、小于和)的快速查找之间的运营商)。这种类型的索引可用于大多数存储引擎,例如InnoDB而且MyISAM

因为b树节点可以有很多子节点,所以b树和二叉树不一样,二叉树每个节点只能有2个子节点。

散列索引,它只在内存存储引擎。的内存存储引擎也可以使用b -树索引,您应该选择b -树索引内存表(如果某些查询使用范围操作符)。

术语B-tree的使用旨在作为索引设计的一般类的参考。MySQL存储引擎使用的b树结构可能被认为是一种变体,因为它具有经典b树设计中不存在的复杂性。相关信息请参见InnoDB页面结构费尔头部分的MySQL内部手册

另请参阅散列索引

引号的

MySQL SQL语句中的标识符必须用引号括起来(),如果它们包含特殊字符或保留字。例如,要引用名为FOO #酒吧或者一个名为选择,将标识符指定为“FOO # BAR”而且“选择”.由于反勾提供了额外的安全级别,它们被广泛用于程序生成的SQL语句中,在这些语句中,标识符的名称可能事先不知道。

许多其他数据库系统使用双引号()。为了可移植性,您可以启用ANSI_QUOTES模式,并使用双引号而不是反引号来限定标识符名称。

另请参阅SQL

备份

从MySQL实例中复制部分或全部表数据和元数据的过程,以确保安全。也可以参考复制文件的集合。这对于dba来说是一项至关重要的任务。与此相反的是恢复操作。

MySQL,物理备份MySQL企业备份产品,逻辑备份, mysqldump命令。这些技术在备份数据的大小和表示以及速度(特别是恢复操作的速度)方面具有不同的特点。

备份进一步分类为温暖的,或这取决于它们对正常数据库操作的干扰程度。(热备份干扰最小,冷备份干扰最大。)

另请参阅冷备份热备份逻辑备份MySQL企业备份, mysqldump物理备份热备份

梭鱼

的代码名InnoDB文件格式支持压缩行格式,启用InnoDB表压缩动态改进长可变长列的存储布局的行格式。

MySQL企业备份product version 3.5及以上版本支持备份使用Barracuda文件格式的表空间。

另请参阅羚羊紧凑行格式压缩行格式动态行格式文件格式file-per-table一般的表空间innodb_file_formatMySQL企业备份行格式系统表空间

β

软件产品生命周期的早期阶段,仅用于评估,通常没有明确的发布号或小于1的发布号。InnoDB不使用beta命名,更喜欢早期采用者阶段可以扩展到多个点释放,导致一个遗传算法释放。

另请参阅早期采用者遗传算法

二进制日志

包含试图更改表数据的所有语句或行更改的记录的文件。二进制日志的内容可以被重放以使副本更新到最新复制场景,或者在从备份恢复表数据之后更新数据库。可以打开或关闭二进制日志记录特性,但如果您使用复制或执行备份,Oracle建议始终启用它。

可以检查二进制日志的内容,或者在复制或恢复期间重播它,使用mysqlbinlog命令。有关二进制日志的完整信息,请参见MySQL企业备份产品中,二进制日志的文件名和文件中的当前位置是重要的细节。要在复制上下文中进行备份时为源记录此信息,可以指定——slave-info选择。

在MySQL 5.0之前,有一个类似的功能,称为更新日志。在MySQL 5.0及更高版本中,二进制日志将取代更新日志。

另请参阅binlogMySQL企业备份复制

binlog

的非正式名称二进制日志文件。例如,您可能会在电子邮件消息或论坛讨论中看到这个缩写。

另请参阅二进制日志

盲目的查询扩展

一种特殊的全文搜索启用的与查询扩展条款。它执行两次搜索,其中第二次搜索的搜索短语是原始搜索短语与第一次搜索中几个最相关的文档连接在一起。这种技术主要适用于短搜索短语,可能只有一个单词。它可以发现文档中没有出现精确搜索词的相关匹配项。

另请参阅全文搜索

SQL数据类型(TINYBLOBMEDIUMBLOB,LONGBLOB),用于包含任意类型的二进制数据的对象。用于存储文档、图像、声音文件和其他不能轻易分解为MySQL表中的行和列的信息。在MySQL应用程序中处理blob的技术各不相同连接器而且API.MySQL连接器/ ODBC定义了值作为LONGVARBINARY.对于大型的、自由形式的字符数据集合,行业术语是CLOB,以MySQL为代表文本数据类型。

另请参阅APICLOB连接器连接器/ ODBC

瓶颈

系统中受大小或容量限制的一部分,它具有限制总体吞吐量的效果。例如,内存区域可能比必要的小;访问单个所需资源可能会阻止多个CPU核同时运行;或等待磁盘I/O完成可能会阻止CPU满负荷运行。消除瓶颈往往会得到改善并发性.例如,有多重的能力InnoDB缓冲池当多个会话同时对缓冲池进行读写时,实例可以减少争用。

另请参阅缓冲池并发性

反弹

一个关闭立即重启操作。最好有一个相对短的热身周期,使性能和吞吐量迅速恢复到较高水平。

另请参阅关闭

巴迪分配器

一种管理不同大小的机制页面InnoDB的缓冲池

另请参阅缓冲池页面页面大小

缓冲

用于临时存储的存储器或磁盘区。数据在内存中进行缓冲,这样就可以有效地将其写入磁盘,只需进行一些大型I/O操作,而不是进行许多小型操作。数据被缓冲在磁盘上以获得更高的可靠性,因此即使在一个崩溃或者其他失败发生在最糟糕的时间。InnoDB使用的缓冲区的主要类型是缓冲池,doublewrite缓冲,改变缓冲

另请参阅缓冲池改变缓冲崩溃doublewrite缓冲

缓冲池

保存缓存的内存区域InnoDB表和索引的数据。为了提高大容量读操作的效率,将缓冲池分为页面它可能包含多行。为了提高缓存管理的效率,缓冲池被实现为一个页面链表;控件的变体将很少使用的数据老化出缓存LRU算法。在拥有大内存的系统上,可以通过将缓冲池划分为多个来提高并发性缓冲池实例

几个InnoDB状态变量,INFORMATION_SCHEMA表和performance_schema表有助于监视缓冲池的内部工作。从MySQL 5.6开始,你可以避免重启服务器后的长时间预热,特别是对于大型缓冲池的实例,通过在服务器关闭时保存缓冲池状态,并在服务器启动时恢复到相同的状态。看到缓冲池实例LRU页面热身

缓冲池实例

多个区域中的任何一个缓冲池可分、可控innodb_buffer_pool_instances配置选项。指定的总内存大小通过innodb_buffer_pool_size在所有缓冲池实例中分配。通常,拥有多个缓冲池实例适合分配多个gb的系统InnoDB缓冲池,每个实例为1g或更大。在从许多并发会话加载或查找缓冲池中的大量数据的系统上,拥有多个缓冲池实例可以减少对管理缓冲池的数据结构的独占访问的争用。

另请参阅缓冲池

内置的

内置的InnoDBMySQL中的存储引擎是存储引擎发行版的原始形式。与InnoDB插件.从MySQL 5.5开始,InnoDB Plugin被合并回MySQL代码库中作为内置插件InnoDB存储引擎(InnoDB 1.1)。

这种区别在MySQL 5.1中尤为重要,一个特性或bug修复可能适用于InnoDB Plugin,但不适用于内置插件InnoDB,反之亦然。

另请参阅InnoDB

业务规则

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

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

另请参阅关系

C

. cfg文件

的元数据文件InnoDB移动式表空间特性。它由命令产生刷新表……用于出口,使一个或多个表处于一致状态,可以复制到另一个服务器。的. cfg文件连同相应的.ibd文件,用于调整的内部值.ibd文件,例如空间ID期间,ALTER TABLE……导入表空间的一步。

另请参阅.ibd文件空间ID移动式表空间

C

一种编程语言,它结合了可移植性、性能和对底层硬件特性的访问,使其成为编写操作系统、驱动程序和其他类型的系统软件的流行选择。许多复杂的应用程序、语言和可重用模块都具有用C编写的特性片段,并与用其他语言编写的高级组件结合在一起。它的核心语法是熟悉的c++Java,c#开发人员。

另请参阅C APIc++c#Java

C API

CAPI代码与MySQL一起发布。它包含在libmysqlclient图书馆和使C访问数据库的程序。

另请参阅APIClibmysqlclient

c#

一种结合了强类型和面向对象特性的编程语言,运行在Microsoft内部net框架或它的开源对等物莫诺.控件用于创建应用程序ASP.net框架。它的语法很熟悉Cc++而且Java开发人员。

另请参阅netASP.netC连接器/净c++Java莫诺

c++

一种核心语法熟悉的编程语言C开发人员。提供对底层操作的访问以提高性能,并结合了高级数据类型、面向对象特性和垃圾收集。要为MySQL编写c++应用程序,需要使用连接器/ c++组件。

另请参阅C连接器/ c++

缓存

用于存储数据副本以便频繁或高速检索的任何存储区域的通用术语。在InnoDB,最主要的一种缓存结构是缓冲池

另请参阅缓冲缓冲池

基数

表中不同值的数目.当查询引用具有关联的指数,每个列的基数影响哪一种访问方法最有效。例如,对于带有唯一约束,不同值的数量等于表中的行数。如果一个表有100万行,但对于某个列只有10个不同的值,那么每个值(平均)出现100,000次。这样的查询SELECT c1 FROM t1 WHERE c1 = 50;因此可能返回1行或大量行,数据库服务器可能根据基数的不同以不同的方式处理查询c1

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

基数还可以应用于多个列中存在的不同值的数量,如综合指数

另请参阅综合指数指数索引提示持续的统计数据随机的潜水选择性唯一约束

改变缓冲

一种记录变化的特殊数据结构页面二级索引.这些值可能来自SQL插入更新,或删除语句(DML).涉及变更缓冲区的特性集统称为改变缓冲组成的插入缓冲删除缓冲,清除缓存

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

在物理上,更改缓冲区是系统表空间,以便索引更改在数据库重新启动时保持缓冲。更改只会被应用(合并后的),当由于某些其他读操作而将页引入缓冲池时。

更改缓冲区中存储的数据的类型和数量由innodb_change_buffering而且innodb_change_buffer_max_size配置选项。若要查看有关更改缓冲区中当前数据的信息,请发出查看引擎innodb状态命令。

前身为插入缓冲

另请参阅缓冲池改变缓冲删除缓冲DML插入缓冲插入缓冲合并页面清洗清除缓存二级索引系统表空间

改变缓冲

的特性的总称改变缓冲组成的插入缓冲删除缓冲,清除缓存.SQL语句导致的索引更改通常会涉及随机的I/O操作,这些更改会被后台保存并定期执行线程.这一系列操作可以比立即将每个索引值写入磁盘更有效地写入一系列索引值的磁盘块。控制的innodb_change_buffering而且innodb_change_buffer_max_size配置选项。

另请参阅改变缓冲删除缓冲插入缓冲清除缓存

检查点

控件中缓存的数据页进行更改时缓冲池,这些更改被写入数据文件一段时间后,一个过程被称为冲洗.检查点是最新更改的记录(由LSN值)已成功写入数据文件。

另请参阅缓冲池数据文件冲洗模糊检查点LSN

校验和

InnoDB,用于检测损坏的验证机制页面在一个表空间从磁盘读入InnoDB缓冲池.控件控制此特性innodb_checksumsMySQL 5.5的配置选项。innodb_checksumsMySQL 5.6.3中已弃用innodb_checksum_algorithm

innochecksum命令通过测试指定的校验和值来帮助诊断损坏问题表空间当MySQL服务器关闭时。

MySQL也使用校验和进行复制。具体操作请参见配置选项binlog_checksummaster_verify_checksum,slave_sql_verify_checksum

另请参阅缓冲池页面表空间

子表

在一个外键关系中,子表是指其行引用(或指向)另一个表中具有特定列相同值的行。这是包含外键…参考文献条款和可选在更新而且在删除条款。中对应的行父表必须在子表中创建行之前存在。子表中的值可以阻止对父表的删除或更新操作,也可以导致子表中的自动删除或更新在级联选项在创建外键时使用。

另请参阅外键父表

干净的页面

一个页面InnoDB缓冲池在内存中所做的所有更改也被写入(刷新)脏页

另请参阅缓冲池数据文件脏页冲洗页面

干净的关闭

一个关闭这将完成,没有错误,并将所有更改应用于InnoDB表完成前,相对于一个崩溃或者一个快速关闭.的同义词缓慢关闭

另请参阅崩溃快速关闭关闭缓慢关闭

客户端

运行在数据库服务器外部的一种程序,它通过数据库服务器发送请求来与数据库进行通信连接器,或者一个API通过客户端库.它可以运行在与数据库服务器相同的物理机器上,也可以运行在通过网络连接的远程机器上。它可以是特殊用途的数据库应用程序,也可以是通用用途的程序,如mysql命令行处理器。

另请参阅API客户端库连接器mysql服务器

客户端库

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

另请参阅客户端libmysqlclient

客户端预置语句

一个类型的事先准备好的声明中缓存和重用在本地管理,模仿服务器端准备好的语句.历史上,被一些人使用连接器/ J连接器/ ODBC,连接器/ PHP开发人员需要解决服务器端存储过程的问题。对于现代的MySQL服务器版本,建议使用服务器端准备好的语句来提高性能、可伸缩性和内存效率。

另请参阅连接器/ J连接器/ ODBC连接器/ PHP事先准备好的声明中

CLOB

SQL数据类型(非常小的文本串文本简单,或量变)用于包含任意大小的任意类型字符数据的对象。用于存储基于文本的文档,具有相关的字符集和排序顺序。在MySQL应用程序中处理clob的技术各不相同连接器而且API.MySQL连接器/ ODBC定义文本值作为用LONGVARCHAR.对于存储二进制数据,等效的是类型。

另请参阅API连接器连接器/ ODBC

聚集索引

InnoDB术语主键索引。InnoDB根据主键列的值组织表存储,以加快涉及主键列的查询和排序。为了获得最佳性能,请根据性能最关键的查询仔细选择主键列。因为修改聚集索引的列是一个开销很大的操作,所以选择很少或从不更新的主列。

在Oracle数据库产品中,这种类型的表被称为index-organized表

另请参阅指数主键二级索引

冷备份

一个备份在数据库关闭时获取。对于繁忙的应用程序和网站,这可能不实用,您可能更喜欢使用热备份或者一个热备份

另请参阅备份热备份热备份

类中的数据项,其存储和语义由数据类型定义。每一个表格而且指数很大程度上是由它所包含的列集定义的。

每列都有一个基数价值。列可以是主键对于其表,或主键的一部分。一列可以以唯一约束,一个非空约束,或两者兼而有之。控件可以将不同列(甚至不同表)中的值链接到外键的关系。

在MySQL内部操作的讨论中,有时用作同义词。

另请参阅基数外键指数非空约束主键表格唯一约束

列索引

一个指数在一个列上。

另请参阅综合指数指数

列前缀

当一个指数使用长度规范创建,例如创建索引idx (c1(N)),只有列值的前N个字符存储在索引中。保持索引前缀小可以使索引紧凑,内存和磁盘I/O节省有助于提高性能。(尽管将索引前缀设置得太小会妨碍查询优化,因为这会使具有不同值的行在查询优化器看来是重复的。)

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

另请参阅指数

命令拦截器

的同义词声明拦截器.其中一个方面拦截器两者都可用的设计模式连接器/净而且连接器/ J.Connector/NET称为命令的东西,Connector/J称为语句。与异常拦截器

另请参阅连接器/ J连接器/净异常拦截器拦截器声明拦截器

提交

一个SQL语句结束事务,使事务所做的任何更改永久存在。它是相反的回滚,它将撤消在事务中所做的任何更改。

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

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

另请参阅自动提交乐观回滚SQL事务

紧凑行格式

默认的InnoDB行格式InnoDB从MySQL 5.0.3开始。的紧凑的行格式为空列和变长列提供了比之前的默认值(冗余行格式)。

有关InnoDB紧凑的行格式,请参阅羚羊动态行格式文件格式冗余行格式行格式

综合指数

一个指数这包括多个列。

另请参阅指数

压缩备份

压缩特性的MySQL企业备份Product生成每个表空间的压缩副本,并更改扩展名.ibd.ibz.压缩备份数据可以使您保留更多的备份,并减少将备份转移到不同服务器的时间。恢复过程中数据未压缩。当压缩备份操作处理已经压缩的表时,它会跳过该表的压缩步骤,因为再次压缩只能节省很少的空间,甚至不能节省空间。

程序生成的一组文件MySQL企业备份产品,每个表空间被压缩。压缩文件被重命名为.ibz文件扩展名。

应用压缩在备份过程的开始,有助于避免压缩过程中的存储开销,以及避免将备份文件传输到另一台服务器时的网络开销。的过程应用二进制日志耗时较长,且需要解压备份文件。

另请参阅应用二进制日志压缩热备份MySQL企业备份表空间

压缩行格式

一个行格式这样就可以实现数据和索引压缩InnoDB表。它是在InnoDB插件,可作为的一部分梭鱼文件格式。较大的字段存储在保存其余行数据的页之外,如动态行格式.索引页和大字段都被压缩了,从而节省了内存和磁盘。根据数据的结构,内存和磁盘使用量的减少可能会(也可能不会)超过在使用时解压缩数据的性能开销。看到第14.9节," InnoDB表压缩"使用的细节。

有关InnoDB压缩行格式,请参阅梭鱼压缩动态行格式行格式

压缩表

以压缩形式存储其数据的表。为InnoDB,它是用创建的表ROW_FORMAT =压缩.看到第14.9节," InnoDB表压缩"为更多的信息。

另请参阅压缩行格式压缩

压缩

使用更少的磁盘空间、执行更少的I/O和使用更少的内存进行缓存,这是一个具有广泛好处的特性。InnoDB在数据库操作期间,表和索引数据可以以压缩格式保存。

当需要进行查询时,数据将被解压缩,当进行更改时,数据将被重新压缩DML操作。在启用表压缩后,此处理对用户和应用程序开发人员是透明的。dba可以参考InnoDBINFORMATION_SCHEMA表来监视压缩参数对MySQL实例和特定压缩表的工作效率。

InnoDB表数据是压缩的,这种压缩适用于表本身、任何关联的索引数据以及加载到缓冲池.控件中的页不适用压缩撤销缓冲区

表压缩特性需要使用MySQL 5.5或更高版本,或MySQL 5.1或更早版本的InnoDB Plugin,并使用梭鱼文件格式和压缩行格式,innodb_file_per_table设置启用。

控件影响每个表的压缩KEY_BLOCK_SIZE条款的创建表而且ALTER TABLE语句。在MySQL 5.6及更高版本中,压缩也会受到服务器范围的配置选项的影响innodb_compression_failure_threshold_pctinnodb_compression_level,innodb_compression_pad_pct_max.看到第14.9节," InnoDB表压缩"使用的细节。

另一种压缩类型是压缩备份的特征MySQL企业备份产品。

另请参阅梭鱼缓冲池压缩备份压缩行格式DML透明页面压缩

压缩失败

这实际上不是一个错误,而是在使用时可能发生的昂贵操作压缩结合DML操作。它发生在:更新压缩文件时页面溢出页面上为记录修改而保留的区域;页面再次被压缩,所有更改都应用于表数据;重新压缩的数据不适合原始页面,需要MySQL将数据拆分为两个新页面,并分别压缩每个页面。要检查此条件的频率,请查询INFORMATION_SCHEMA。INNODB_CMP并检查表的值有多少COMPRESS_OPS的值COMPRESS_OPS_OK列。理想情况下,压缩失效不经常发生;当它们出现时,你可以调整innodb_compression_levelinnodb_compression_failure_threshold_pct,innodb_compression_pad_pct_max配置选项。

另请参阅压缩DML页面

连接指数

看到综合指数

并发性

多操作的能力(在数据库术语中,交易)同时运行,互不干扰。并发性还与性能有关,因为在理想情况下,对多个同时发生的事务的保护可以使用最小的性能开销,并使用有效的机制来实现锁定

另请参阅锁定事务

配置文件

的文件选项MySQL在启动时使用的值。传统上,在Linux和Unix上,这个文件被命名为my.cnf,在Windows上命名为my.ini.你可以设置许多与InnoDB相关的选项(mysqld)文件的部分。

看到MySQL企业备份产品中,您通常使用两个配置文件:一个指定数据来自何处及其结构方式(可以是服务器的原始配置文件),另一个只包含一小组选项,用于指定备份数据的位置和结构方式。使用的配置文件MySQL企业备份产品必须包含常规配置文件中通常不包含的某些选项,因此可能需要将选项添加到现有配置文件中以供使用MySQL企业备份

另请参阅my.cnfMySQL企业备份选项选择文件

连接

应用程序和MySQL服务器之间的通信通道。数据库应用程序的性能和可伸缩性受到以下因素的影响:建立数据库连接的速度、可以同时建立多少个数据库连接以及这些数据库连接的持续时间。这些参数包括宿主港口等都表示为a连接字符串连接器/净,作为DSN连接器/ ODBC.高流量系统利用了一种优化方法连接池

另请参阅连接池连接字符串连接器/净连接器/ ODBCDSN宿主港口

连接池

允许数据库的缓存区连接在相同的应用程序中或跨不同的应用程序重用,而不是为每个数据库操作设置和拆除一个新连接。这种技术是常见的J2EE应用程序服务器。Java应用程序使用连接器/ J可以使用的连接池功能Tomcat和其他应用服务器。重用对应用程序是透明的;应用程序仍然像往常一样打开和关闭连接。

另请参阅连接连接器/ JJ2EETomcat

连接字符串

数据库参数的表示形式连接,编码为字符串字面值,以便在程序代码中使用。字符串的部分表示连接参数,例如宿主而且港口.连接字符串包含几个键-值对,用分号分隔。每个键值对使用等号连接。经常使用连接器/净应用程序;看到创建Connector/NET连接字符串获取详细信息。

另请参阅连接连接器/净宿主港口

连接器

MySQL连接器提供到MySQL服务器的连接客户端项目。几种编程语言和框架都有各自相关的Connector。控件提供的较低级别的访问API

另请参阅API客户端连接器/ c++连接器/ J连接器/净连接器/ ODBC

连接器/ c++

Connector/ c++ 8.0可以用来访问MySQL服务器,实现一个文档存储,或者以传统方式使用SQL查询。它支持使用X DevAPI开发c++应用程序,或者使用X DevAPI开发C语言的普通C应用程序。它还支持使用Connector/ c++ 1.1中遗留的基于jdbc的API开发c++应用程序。有关更多信息,请参见MySQL Connector/ c++ 8.0开发者指南

另请参阅客户端连接器JDBC

连接器/ J

一个JDBC提供连接的驱动程序客户端开发的应用程序Java编程语言。JDBC 3.0和JDBC 4.0规范有不同的兼容版本。MySQL Connector/J是JDBC Type 4驱动程序:MySQL协议的纯java实现,不依赖于MySQL客户端库.详情请参见MySQL Connector/J 5.1开发者指南

另请参阅客户端客户端库连接器JavaJDBC

连接器/净

MySQL连接器用于开发人员使用诸如此类的语言、技术和框架编写应用程序c#net莫诺Visual StudioASP.net,ADO.net

另请参阅ADO。网ASP.net连接器c#莫诺Visual Studio

连接器/ ODBC

MySQL ODBC驱动程序家族,使用行业标准的开放数据库连接(ODBC) API。以前称为MyODBC驱动程序。详情请参见MySQL连接器/ODBC开发人员指南

另请参阅连接器ODBC

连接器/ PHP

一个版本的mysql而且mysqliapiPHP针对Windows操作系统进行了优化。

另请参阅连接器PHPPHP API

一致的阅读

一种读操作,使用快照基于某个时间点显示查询结果的信息,而不考虑同时运行的其他事务执行的更改。如果查询的数据已被其他事务更改,则根据事务的内容重建原始数据undo日志.这种技术避免了一些锁定可以减少的问题并发性通过强制事务等待其他事务完成。

可重复读取隔离级别,快照基于第一次读操作执行的时间。与读过承诺隔离级别时,快照将重置为每次一致读操作的时间。

一致性读是默认模式InnoDB流程选择语句读过承诺而且可重复读取隔离级别。因为一致的读操作不会对它所访问的表设置任何锁,所以当对表执行一致的读操作时,其他会话可以自由地修改这些表。

有关适用隔离级别的技术详细信息,请参见第14.7.2.3节,"一致的非锁定读取"

另请参阅并发性隔离级别锁定读过承诺可重复读取快照事务undo日志

约束

一种自动测试,可以阻止数据库更改,以防止数据变得不一致。(用计算机科学术语来说,是一种与不变条件相关的断言。)约束是的一个关键组成部分理念,保持数据的一致性。MySQL支持的约束包括外键约束而且独特的约束

另请参阅外键唯一约束

计数器

以一种特定的InnoDB操作。这对于测量服务器的繁忙程度、排除性能问题的来源以及测试更改(例如配置设置或查询使用的索引)是否具有所需的底层效果非常有用。有不同种类的柜台可供选择性能模式表和INFORMATION_SCHEMA表,特别是INFORMATION_SCHEMA。INNODB_METRICS

另请参阅INFORMATION_SCHEMA度量计数器性能模式

覆盖索引

一个指数它包括查询检索到的所有列。查询不是使用索引值作为指针来查找完整的表行,而是从索引结构返回值,从而节省磁盘I/O。InnoDB可以将这种优化技术应用于比MyISAM更多的索引,因为InnoDB二级索引还包含了主键列。InnoDB在事务结束之前,不能对由事务修改的表应用此技术。

任何列索引综合指数可以作为覆盖索引,给定正确的查询。设计索引和查询,尽可能利用这种优化技术。

另请参阅列索引综合指数指数主键二级索引

中央处理器受限

一个类型的工作负载在主瓶颈是CPU在内存中的操作。通常涉及到读密集型操作,其中的结果都可以缓存在缓冲池

另请参阅瓶颈缓冲池工作负载

崩溃

MySQL使用这个术语崩溃泛指任何意想不到的事物关闭服务器无法进行正常清理的操作。例如,数据库服务器机器或存储设备上的硬件故障可能会导致崩溃;电源故障;潜在的数据不匹配导致MySQL服务器停止;一个快速关闭由DBA发起;或者其他很多原因。健壮的、自动崩溃恢复InnoDB表可以确保重新启动服务器时数据保持一致,DBA无需做任何额外的工作。

另请参阅崩溃恢复快速关闭InnoDB关闭

崩溃恢复

之后再次启动MySQL时发生的清理活动崩溃.为InnoDB表中,不完整事务的更改将使用来自重做日志.的变化,承诺股灾之前,却还没写进数据文件,由doublewrite缓冲.当数据库正常关闭时,这种类型的活动在关闭期间由清洗操作。

在正常操作期间,提交的数据可以存储在改变缓冲在写入数据文件之前的一段时间。在保持数据文件是最新的(这会在正常操作期间带来性能开销)和对数据进行缓冲(这会使关机和崩溃恢复花费更长的时间)之间总是有一个权衡。

另请参阅改变缓冲提交崩溃数据文件doublewrite缓冲InnoDB清洗重做日志

CRUD

缩写创建、读取、更新、删除,数据库应用程序中常见的操作序列。通常表示一类数据库使用相对简单的应用程序(基本的DDLDML而且查询语句SQL),可以在任何语言中快速实现。

另请参阅DDLDML查询SQL

光标

一种表示SQL语句结果集的MySQL内部数据结构。经常使用准备好的语句而且动态SQL.它的工作方式类似于其他高级语言中的迭代器,按照请求从结果集生成每个值。

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

另请参阅动态SQL事先准备好的声明中查询

D

数据定义语言

看到DDL

数据字典

跟踪innodb相关对象的元数据索引和表.此元数据物理上位于InnoDB系统表空间.由于历史原因,它在一定程度上与存储在.frm文件

因为MySQL企业备份Product总是备份系统表空间,所有备份包括数据字典的内容。

另请参阅file-per-table.frm文件指数MySQL企业备份系统表空间表格

数据目录

MySQL所在的目录实例使数据文件InnoDB以及表示单个数据库的目录。控制的datadir配置选项。

另请参阅数据文件实例

数据文件

物理上包含的文件表格而且指数数据。

InnoDB系统表空间,它持有InnoDB数据字典并且能够保存多个数据InnoDB表,由一个或多个表表示.ibdata数据文件。

每个表的文件表空间,它保存单个表的数据InnoDB表中,均由.ibd数据文件。

通用表空间(在MySQL 5.7.6中引入),它可以保存多个数据InnoDB表,也由a表示.ibd数据文件。

另请参阅数据字典file-per-table一般的表空间.ibd文件ibdata文件指数系统表空间表格表空间

数据操作语言

看到DML

数据仓库

主要是大型运行的数据库系统或应用程序查询.只读或以读为主的数据可能被组织在其中规范化的表单提高查询效率。可以受益于的优化只读事务MySQL 5.6或更高版本。与OLTP

另请参阅规范化的OLTP查询只读事务

数据库

在MySQL数据目录,每个数据库由一个单独的目录表示。InnoDB的系统表空间,它可以在MySQL中保存来自多个数据库的表数据实例,保存在数据文件驻留在单个数据库目录之外的。当file-per-table模式已启用.ibd文件表示单独的InnoDB表存储在数据库目录中,除非在其他地方使用数据目录条款。一般的表空间,在MySQL 5.7.6中引入,也保存表数据.ibd文件.不像file-per-table.ibd文件,一般表空间.ibd文件MySQL中可以保存来自多个数据库的表数据实例,可以分配给相对于或独立于MySQL数据目录的目录。

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

另请参阅数据文件file-per-table.ibd文件实例模式系统表空间

DCL

数据控制语言,一套SQL管理特权的语句。在MySQL中,由格兰特而且撤销语句。与DDL而且DML

另请参阅DDLDMLSQL

DDEX提供者

允许您使用其中的数据设计工具的特性Visual Studio来操作MySQL数据库中的模式和对象。对于MySQL应用程序,使用连接器/净, MySQL Visual Studio Plugin在MySQL 5.0及更高版本中充当DDEX提供商。

另请参阅Visual Studio

DDL

数据定义语言,一套SQL用于操作数据库本身而不是单个表行的语句。包括所有形式的创建改变,下降语句。还包括截断语句,因为它和删除从table_name虽然最终的效果是相似的。

DDL语句自动提交当前的事务;他们不能回滚

InnoDB创建索引指数下降,以及多种类型ALTER TABLE操作。看到InnoDB删除表而且截断表操作。

DML而且DCL

另请参阅提交DCLDMLfile-per-table回滚SQL事务

死锁

不同的情况交易都无法前行,因为每一次都抱着一个这是另一个人需要的。因为两个事务都在等待资源变得可用,所以没有一个事务会释放它持有的锁。

当事务锁定多个表中的行时(通过语句,例如更新选择……更新),但顺序相反。当这些语句锁定索引记录的范围时,也会发生死锁差距,由于时间问题,每个事务获取一些锁,而不获取其他锁。

有关如何自动检测和处理死锁的背景信息,请参见差距事务

死锁检测

一种自动检测的机制死锁发生,并自动回滚其中的一个交易(涉及受害者).

另请参阅死锁回滚事务受害者

删除

InnoDB处理删除语句时,这些行立即标记为删除,查询不再返回这些行。存储将在稍后的定期垃圾收集期间回收清洗操作。对于大量的数据移除,相关的操作具有自身的性能特点截断而且下降

另请参阅下降清洗截断

删除缓冲

将更改存储到次要索引页的技术,产生于删除操作,在改变缓冲而不是立即写入更改,这样就可以执行物理写入来最小化随机I/O。(因为删除操作是一个两步过程,这个操作缓冲了通常标记索引记录的写操作。)它是一种改变缓冲;其余的是插入缓冲而且清除缓存

另请参阅改变缓冲改变缓冲插入缓冲插入缓冲清除缓存

规范化的

一种数据存储策略,在不同的表之间复制数据,而不是使用外键而且加入查询。通常用在数据仓库应用程序,其中的数据在加载后不更新。在这样的应用程序中,查询性能比在更新期间简单地维护一致的数据更为重要。与归一化

另请参阅数据仓库外键加入归一化

降序索引

一个类型的指数可用于一些数据库系统,其中索引存储优化以处理命令DESC条款。目前,虽然MySQL允许DESC关键字的创建表语句时,它不会为生成的索引使用任何特殊的存储布局。

另请参阅指数

脏页

一个页面InnoDB缓冲池已在内存中更新,更改尚未写入内存(刷新)数据文件.a的反义词干净的页面

另请参阅缓冲池干净的页面数据文件冲洗页面

脏读

检索不可靠数据的操作,即已被另一个事务更新但尚未更新的数据承诺.这是唯一可能的隔离级别被称为读未提交

这种操作不坚持的数据库设计原理。这被认为是非常危险的,因为数据可能是回滚,或在提交前进一步更新;然后,执行脏读的事务将使用从未被确认为准确的数据。

它的对面是一致的阅读,在那里InnoDB确保一个事务不读取另一个事务更新的信息,即使另一个事务同时提交了信息。

另请参阅提交一致的阅读隔离级别读未提交回滚

基于磁盘的

一种主要在磁盘存储(硬盘或同等设备)上组织数据的数据库。数据在磁盘和内存之间来回传输以供操作。它是an的反义词内存数据库.虽然InnoDB是基于磁盘的,它还包含他缓冲池,多个缓冲池实例,以及自适应哈希索引这允许某些类型的工作负载主要从内存中工作。

另请参阅自适应哈希索引缓冲池内存数据库

disk-bound

一个类型的工作负载在主瓶颈磁盘I / O。(也称为I / o密集型)。通常涉及对磁盘的频繁写入,或随机读取超出所能容纳的数据缓冲池

另请参阅瓶颈缓冲池工作负载

DML

数据操作语言,一套SQL语句执行插入更新,删除操作。的选择语句有时被认为是DML语句,因为选择……更新形式受相同的考虑锁定作为插入更新,删除

的DML语句InnoDB表操作在上下文中事务,所以他们的影响可以承诺回滚作为一个整体。

DDL而且DCL

另请参阅提交DCLDDL锁定回滚SQL事务

文档id

InnoDB全文搜索特性,表中包含的特殊列全文索引,以惟一地标识与每个对象关联的文档ilist价值。它的名字是FTS_DOC_ID(大写)。列本身必须是Bigint unsigned not null类型,具有唯一的索引名为FTS_DOC_ID_INDEX.最好在创建表时定义这个列。如果InnoDB创建时必须将列添加到表中全文索引,索引操作的开销要大得多。

另请参阅全文搜索全文索引ilist

doublewrite缓冲

InnoDB使用一种称为doublewrite的文件刷新技术。在写之前页面数据文件InnoDB首先将它们写入一个称为doublewrite缓冲区的存储区域。只有在对doublewrite缓冲区的写入和刷新完成后,才会执行此操作InnoDB将页写入数据文件中适当的位置。如果有操作系统、存储子系统或mysqld进程在写页面的中间崩溃,InnoDB以后可以从doublewrite缓冲区中找到一个好的页面副本吗崩溃恢复

虽然数据总是写两次,但doublewrite缓冲区并不需要两倍的I/O开销或两倍的I/O操作。数据作为一个大的连续块写入缓冲区本身,使用单个fsync ()调用操作系统。

要关闭doublewrite缓冲区,请指定该选项innodb_doublewrite = 0

另请参阅崩溃恢复数据文件页面清洗

下降

一种DDL删除架构对象的操作,通过如下语句删除表指数下降.它在内部映射到ALTER TABLE声明。从一个InnoDB从角度来看,此类操作的性能考虑涉及到时间数据字典是锁定的,以确保相关的对象都被更新,而时间更新的内存结构,如缓冲池.对于一个表格, drop操作与a有一些不同的特性截断操作(截断表声明)。

另请参阅缓冲池数据字典DDL表格截断

DSN

缩写数据库源名称.它是对的编码连接信息连接器/ ODBC.看到在Windows上配置Connector/ODBC DSN全部细节。它相当于连接字符串所使用的连接器/净

另请参阅连接连接字符串连接器/净连接器/ ODBC

动态游标

一个类型的光标支持的ODBC它可以在再次读取行时获取新的和更改的结果。游标是否能够看到更改以及更改的速度取决于所涉及的表的类型(事务性或非事务性)以及事务性表的隔离级别。必须显式地启用对动态游标的支持。

另请参阅光标ODBC

动态行格式

中引入的行格式InnoDB插件,可作为的一部分梭鱼文件格式.由于长变长列值存储在保存行数据的页之外,因此对于包含大对象的行非常有效。由于在计算查询条件时通常不访问大型字段,因此不会将它们引入缓冲池这通常会导致更少的I/O操作和更好地利用缓存内存。

在MySQL 5.7.9版本中,默认行格式由innodb_default_row_format,默认值为动态

有关InnoDB动态行格式,请参阅梭鱼缓冲池文件格式行格式

动态SQL

允许您创建和执行的特性准备好的语句使用更健壮、更安全、更有效的方法替换参数值,而不是将语句的各个部分连接到字符串变量的原始技术。

另请参阅事先准备好的声明中

动态语句

一个事先准备好的声明中通过动态SQL

另请参阅动态SQL事先准备好的声明中

E

早期采用者

类似于β时,软件产品通常在非关键任务设置下评估性能、功能和兼容性。

另请参阅β

埃菲尔铁塔

一种包括许多面向对象特性的编程语言。它的一些概念是熟悉的Java而且c#开发人员。开源埃菲尔APIMySQL,请参阅APIc#Java

嵌入式

嵌入式MySQL服务器库(libmysqld)使得运行一个功能完整的MySQL服务器成为可能客户端应用程序。它的主要好处是提高了速度,并使嵌入式应用程序的管理更加简单。

另请参阅客户端libmysqld

错误日志

一个类型的日志显示MySQL启动和关键运行时错误的信息崩溃信息。有关详细信息,请参见崩溃日志

驱逐

从缓存区或其他临时存储区(如存储器)中移除某一项的过程InnoDB缓冲池.通常,但不总是使用LRU算法来确定要删除的项。当一个脏页是驱逐,其内容是刷新要磁盘,和任何脏的邻居的页面也可能被冲走了

另请参阅缓冲池脏页冲洗LRU邻居页面

异常拦截器

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

Java应用程序使用连接器/ J,设置这种类型的拦截器涉及到实现com.mysql.jdbc.ExceptionInterceptor接口,并添加一个exceptionInterceptors财产连接字符串

Visual Studio应用程序使用连接器/净,设置这种类型的拦截器涉及定义一个继承自BaseExceptionInterceptor类,并将类名指定为连接字符串的一部分。

另请参阅连接器/ J连接器/净拦截器JavaVisual Studio

独占锁

一种这就阻止了任何其他事务锁定同一行。这取决于交易隔离级别,这种锁可能会阻止其他事务写入同一行,也可能会阻止其他事务读取同一行。默认的InnoDB隔离级别,可重复读取,使高并发性通过允许事务读取具有独占锁的行,这种技术称为一致的阅读

另请参阅并发性一致的阅读隔离级别可重复读取共享锁事务

程度上

一群页面在一个表空间.为默认页面大小一个区段包含64页。在MySQL 5.6中,页面大小为InnoDB实例可以是4KB、8KB或16KB,由innodb_page_size配置选项。对于4KB、8KB和16KB的页面大小,区段大小总是1MB(或1048576字节)。

支持32KB和64KBInnoDBMySQL 5.7.6中增加了页面大小。对于32KB的页面大小,区段大小为2MB。对于64KB的页面大小,区段大小为4MB。

InnoDB等特性预读请求和doublewrite缓冲使用一次读取、写入、分配或释放一个区段的I/O操作。

另请参阅doublewrite缓冲页面页面大小预读表空间

F

.frm文件

包含MySQL表的元数据(如表定义)的文件。

对于备份,必须始终保留完整的.frm文件和备份数据,以便能够恢复备份后更改或删除的表。

尽管每个InnoDB表有一个.frm文件,InnoDB控件中维护自己的表元数据系统表空间

.frm文件由MySQL企业备份产品。程序不能修改这些文件ALTER TABLE操作,这就是为什么备份中包含非InnoDB表执行使用读锁刷新表在备份时冻结该活动的操作.frm文件。恢复备份可能会导致.frm正在创建、更改或删除的文件,以匹配备份时数据库的状态。

另请参阅数据字典MySQL企业备份系统表空间

故障转移

在发生故障时自动切换到备用服务器的能力。在MySQL上下文中,故障转移涉及到一个备用数据库服务器。通常支持内J2EE应用服务器或框架的环境。

另请参阅连接器/ JJ2EE

快速创建索引

这个功能最早是在InnoDB Plugin中引入的,现在是MySQL 5.5及更高版本的一部分,它可以加速创建InnoDB二级索引通过避免完全重写相关联的表。这种加速也适用于删除二级索引。

因为索引维护会给许多数据传输操作增加性能开销,所以可以考虑执行以下操作ALTER TABLE……引擎= INNODB插入……Select * from…没有任何二级索引,然后创建索引。

在MySQL 5.6中,这个特性变得更加普遍。您可以在创建索引时对表进行读写,以及许多其他类型的操作ALTER TABLE操作可以在不复制表、不阻塞的情况下执行DML操作,或两者兼而有之。因此在MySQL 5.6及更高版本中,这组特性被称为在线DDL而不是快速索引创建。

相关信息请参见DML指数在线DDL二级索引

快速关闭

默认的关闭程序InnoDB,根据配置设置innodb_fast_shutdown = 1.当然是为了节省时间冲洗操作跳过。这种类型的关闭在正常使用期间是安全的,因为刷新操作在下一次启动期间执行,使用与中相同的机制崩溃恢复.在数据库因升级或降级而关闭的情况下,执行缓慢关闭而是确保将所有相关更改应用到数据文件在关闭。

另请参阅崩溃恢复数据文件冲洗关闭缓慢关闭

文件格式

的文件格式InnoDB表,使用innodb_file_format配置选项。支持的文件格式有羚羊而且梭鱼.羚羊是最原始的InnoDB文件格式,并支持冗余而且紧凑的行格式。梭鱼是较新的InnoDB文件格式,并支持压缩而且动态行格式。

另请参阅羚羊梭鱼file-per-table.ibd文件ibdata文件行格式

file-per-table

控件控制的设置的通用名称innodb_file_per_table选项,这是一个重要的配置选项,它影响InnoDB文件存储、可用性特性和I/O特性。从MySQL 5.6.7开始,innodb_file_per_table默认启用。

innodb_file_per_table选项启用后,可以创建自己的表.ibd文件而不是在分享ibdata文件系统表空间.当表数据存储在一个单独的.ibd文件,你有更多的选择灵活性行格式数据等特性所需压缩.的截断表操作速度也更快,回收的空间可以由操作系统使用,而不是保留给InnoDB

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

另请参阅压缩行格式压缩文件格式.ibd文件ibdata文件innodb_file_per_tableMySQL企业备份行格式系统表空间

填充因数

在一个InnoDB指数, a的比例页面在拆分页面之前,索引数据占用了这些数据。当索引数据首次在页面之间划分时,未使用的空间允许使用较长的字符串值更新行,而不需要昂贵的索引维护操作。如果填充因子过低,那么索引消耗的空间将超过所需空间,从而在读取索引时造成额外的I/O开销。如果填充因子过高,任何增加列值长度的更新都可能导致索引维护的额外I/O开销。看到指数页面

固定行格式

控件使用此行格式MyISAM存储引擎,不是由InnoDB.如果你创建一个InnoDB带有选项的表格ROW_FORMAT =固定在MySQL 5.7.6或更早版本InnoDB使用紧凑行格式相反,虽然固定值仍然可能显示在输出中,例如显示表状态报告。从MySQL 5.7.7开始,InnoDB在以下情况下返回错误ROW_FORMAT =固定都是确定的。

另请参阅紧凑行格式行格式

冲洗

将更改写入已缓冲在内存区域或临时磁盘存储区域中的数据库文件。的InnoDB定期刷新的存储结构包括重做日志,undo日志,缓冲池

发生刷新可能是因为内存区域已满,系统需要释放一些空间,因为a提交操作意味着可以完成事务的更改,或者因为一个缓慢关闭操作是指所有未完成的工作都要完成。当一次刷新所有缓冲数据不是很关键时,InnoDB可以使用一种叫做模糊检查点来刷新小批页面,以分散I/O开销。

另请参阅缓冲池提交模糊检查点重做日志缓慢关闭undo日志

刷新列表

一个内部InnoDB跟踪的数据结构脏页缓冲池:也就是说,页面已更改且需要写回磁盘的文件。此数据结构经常由InnoDB内部mini-transactions,所以被自己保护着互斥锁允许对缓冲池的并发访问。

另请参阅缓冲池脏页LRUmini-transaction互斥锁页面页面干净

外键

一种类型的指针关系,行与行之间分开InnoDB表。的一个列上定义外键关系父表子表

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

设计的阶段之一归一化数据库将识别复制的数据,将这些数据分离到一个新表中,并设置外键关系,以便可以像查询单个表一样查询多个表,使用加入操作。

另请参阅子表外键约束加入归一化父表参照完整性关系

外键约束

的类型约束它通过一个外键的关系。与其他类型的约束一样,如果数据变得不一致,它可以防止插入或更新数据;在这种情况下,防止了多个表中的数据之间的不一致性。另外,当一个DML操作执行,外键约束可能导致数据进入孩子的行删除,更改为不同的值,或设置为,基于在级联选项在创建外键时指定。

另请参阅子表约束DML外键

罚球

在大多数语境中,缩写为全文搜索.有时在绩效讨论中,缩写为全表扫描

另请参阅全表扫描全文搜索

完全备份

一个备份这包括所有在每个MySQL数据库,以及MySQL中的所有数据库实例.与部分备份

另请参阅备份数据库实例部分备份表格

全表扫描

一种操作,需要读取表的全部内容,而不是使用指数.通常在小型查找表中执行,或者在数据仓库中执行大型表(其中所有可用数据都被聚合和分析)。这些操作发生的频率以及表相对于可用内存的大小对查询优化和管理缓冲池

索引的目的是允许在一个大表中查找特定的值或值的范围,从而避免在实际情况下进行全表扫描。

另请参阅缓冲池指数

全文搜索

MySQL特性用于在表数据中查找单词、短语、单词的布尔组合等,比使用SQL更快、更方便、更灵活就像操作符或编写自己的应用程序级搜索算法。它使用SQL函数匹配()而且全文索引

另请参阅全文索引

全文索引

一种特殊的指数保存搜索索引在MySQL全文搜索机制。表示列值中的单词,省略指定为的任何单词stopwords.原来,只能供MyISAM表。从MySQL 5.6.4开始,它也可用于InnoDB表。

另请参阅全文搜索指数InnoDB搜索索引stopword

模糊检查点

一种技术小批量的脏页缓冲池,而不是一次刷新所有脏页,这会破坏数据库处理。

另请参阅缓冲池脏页冲洗

G

遗传算法

一般可用软件产品离开的阶段β并可用于销售、官方支持和生产使用。

另请参阅β

广汽

缩写全局程序集缓存.存放图书馆的中央区域(程序集)net系统。在物理上由嵌套的文件夹组成,被视为单个虚拟文件夹netCLR。

另请参阅net组装

差距

在一个地方InnoDB指数可以插入新值的数据结构。当您使用语句锁定一组行时,例如选择……更新InnoDB可以创建适用于间隙以及索引中的实际值的锁。例如,如果您选择所有大于10的值进行更新,那么间隙锁将阻止另一个事务插入大于10的新值。的上确界记录而且下确界记录表示包含大于或小于所有当前索引值的所有值的间隙。

另请参阅并发性锁的差距指数下确界记录隔离级别上确界记录

锁的差距

一个在一个差距索引记录之间,或锁在第一个索引记录之前或最后一个索引记录之后的间隙。例如,SELECT c1 FROM t WHERE c1 BETWEEN 10 and 20 FOR UPDATE防止其他事务将值15插入到列中t.c1,无论列中是否已经有这样的值,因为范围内所有现有值之间的间隙被锁定。与记录锁而且第二个关键锁

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

另请参阅差距下确界记录第二个关键锁记录锁上确界记录

通用日志

看到通用查询日志

通用查询日志

一个类型的日志用于MySQL服务器处理的SQL语句的诊断和故障排除。可以存储在文件中或数据库表中。您必须通过general_log配置选项来使用它。可以为特定连接禁用它sql_log_off配置选项。

记录的查询范围比慢速查询日志.不像二进制日志,用于复制,一般查询日志包含选择并没有保持严格的顺序。有关更多信息,请参见二进制日志日志慢速查询日志

一般的表空间

一个共享的InnoDB表空间创建使用创建表空间语法。一般的表空间可以在MySQL数据目录之外创建,都能够容纳多个,并支持所有行格式的表。一般表空间是在MySQL 5.7.6中引入的。

使用将表添加到普通表空间创建表tbl_name...表空间(=)tablespace_nameALTER TABLEtbl_name表空间(=)tablespace_name语法。

系统表空间而且file-per-table表空间。

有关更多信息,请参见一般的表空间

另请参阅file-per-table系统表空间表格表空间

Glassfish

另请参阅J2EE

全局事务

一个类型的事务参与XA操作。它包含几个操作,这些操作本身是事务性的,但是所有操作必须作为一个组成功完成,或者作为一个组全部回滚。本质上,这是扩展的属性一个水平以便将多个ACID事务作为同样具有ACID属性的全局操作的组件一起执行。

另请参阅事务XA

组织承诺

一个InnoDB一次执行一些低级I/O操作(日志写入)提交操作,而不是为每次提交分别刷新和同步。

另请参阅二进制日志提交

GUID

缩写全局唯一标识符,一个ID值,可用于跨不同数据库、语言、操作系统等关联数据。(作为使用顺序整数的替代方法,在顺序整数中,相同的值可以出现在不同的表、数据库等中,引用不同的数据。)旧MySQL版本表示为二进制(16).目前,它表示为CHAR (36).MySQL有UUID ()函数以字符格式返回GUID值UUID_SHORT ()函数以整数格式返回GUID值。因为连续的GUID值不一定是升序排序的,所以对于大型InnoDB表来说,它不是一个有效的主键值。

H

散列索引

一个类型的指数适用于使用相等操作符的查询,而不是使用大于或等于等范围操作符之间的.它可用于内存表。虽然哈希索引是默认的内存由于历史原因,该存储引擎也支持表b -树索引,对于通用查询来说,索引通常是更好的选择。

MySQL包含了这种索引类型的变体自适应哈希索引,它是自动构造的InnoDB表(如果需要的话),基于运行时条件。

另请参阅自适应哈希索引b -树指数InnoDB

硬盘驱动器

缩写硬盘驱动器.指使用旋转盘片的存储介质,通常在比较和对比时使用固态硬盘.它的性能特性可以影响a的吞吐量基于磁盘的工作负载。

另请参阅基于磁盘的固态硬盘

心跳

一种周期性发送的消息,表明系统运行正常。在一个复制背景下,如果停止发送这样的消息,其中之一副本可以取代它的位置。可以在集群环境中的服务器之间使用类似的技术,以确认所有服务器都正常运行。

另请参阅复制

高水位线

表示上限的值,可以是运行时不应超过的硬上限,也可以是实际达到的最大值的记录。与最低点

另请参阅最低点

历史列表

的列表交易对象处理的带有删除标记的记录InnoDB清洗操作。记录在undo日志.该命令将报告历史列表的长度查看引擎innodb状态.如果历史记录列表的长度超过innodb_max_purge_lag配置选项,每个DML操作稍微延迟,以使清洗操作完成冲洗删除记录。

也被称为清洗滞后

另请参阅DML冲洗清洗清洗滞后回滚段事务undo日志

孔冲孔

从页面释放空块。的InnoDB透明页面压缩特点是靠冲孔支撑。有关更多信息,请参见InnoDB页面压缩

另请参阅稀疏文件透明页面压缩

宿主

数据库服务器的网络名称,用于建立数据库连接.常与a连用港口.在某些情况下,IP地址127.0.0.1比特殊的名字更管用本地主机用于访问与应用程序位于同一服务器上的数据库。

另请参阅连接本地主机港口

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

虽然通常表示一种不可取的情况,a热备份是首选的备份类型。

另请参阅热备份

热备份

在数据库运行和应用程序对其进行读写时进行的备份。备份不仅仅是简单地复制数据文件:它必须包括在备份过程中插入或更新的任何数据;它必须排除在备份过程中被删除的任何数据;并且它必须忽略任何没有提交的更改。

执行热备份的Oracle产品InnoDB尤其是表格,还有来自MyISAM而其他存储引擎,则被称为MySQL企业备份

热备过程分为两个阶段。数据文件的初始复制产生一个原始备份.的应用步骤将在运行备份时发生的任何更改合并到数据库。应用更改将产生准备备份;这些文件随时可以在需要时进行恢复。

另请参阅应用MySQL企业备份准备备份原始备份

.ibd文件

的数据文件file-per-table表空间和一般表空间。File-per-table表空间.ibd文件包含一个表和关联的索引数据。一般的表空间.ibd文件可以包含多个表的表和索引数据。一般表空间是在MySQL 5.7.6中引入的。

.ibd文件扩展名不适用于系统表空间,由一个或多个组成ibdata文件

方法创建每个表文件的表空间或普通表空间数据目录=条款,.ibd文件位于指定的路径,在普通数据目录之外,由.isl文件

当一个.ibd文件包含在压缩备份文件中MySQL企业备份产品,压缩后等效为a.ibz文件。

另请参阅数据库file-per-table一般的表空间ibdata文件.ibz文件innodb_file_per_table.isl文件MySQL企业备份系统表空间

.ibz文件

MySQL企业备份产品执行压缩备份,它转换每个表空间方法创建的file-per-table设置从一个.ibd扩展到一个.ibz扩展。

备份期间应用的压缩不同于压缩行格式在正常操作期间保持表数据的压缩。压缩备份操作会跳过对已经处于压缩行格式的表空间的压缩步骤,因为第二次压缩会减慢备份速度,但几乎不会节省空间。

另请参阅压缩备份压缩行格式file-per-table.ibd文件MySQL企业备份表空间

.isl文件

一个文件,它指定了.ibd文件对于一个InnoDB创建的数据目录=在MySQL 5.6及更高版本中使用创建表空间……添加数据文件在MySQL 5.7及更高版本中。它的功能类似于符号链接,不受实际符号链接机制的平台限制。你可以储存InnoDB表空间外的数据库例如,在一个特别大或快速的存储设备上,取决于表的使用情况。有关详细信息,请参见一般的表空间

另请参阅数据库.ibd文件表格表空间

I / o密集型

看到disk-bound

ib-file集

所管理的文件集InnoDB在MySQL数据库中系统表空间file-per-table表空间文件,重做日志文件。取决于MySQL版本和InnoDB配置,还可以包括一般的表空间临时表空间,撤消表空间文件。这个术语有时在详细的讨论中使用InnoDB文件结构和格式指的是所管理的文件集InnoDB在MySQL数据库中。

另请参阅数据库file-per-table一般的表空间重做日志系统表空间临时表空间撤消表空间

ibbackup_logfile

用户创建的补充备份文件MySQL企业备份产品在热备份操作。它包含关于在备份运行时发生的任何数据更改的信息。初始备份文件,包括ibbackup_logfile,被称为原始备份,因为在备份操作期间发生的更改尚未合并。执行应用步骤到原始备份文件,生成的文件确实包括这些最终数据更改,被称为准备备份.在这个阶段,ibbackup_logfile文件不再是必要的。

另请参阅应用热备份MySQL企业备份准备备份原始备份

ibdata文件

文件名的一组文件ibdata1ibdata2等等,这些组成了InnoDB系统表空间.有关驻留在系统表空间中的结构和数据的信息ibdata文件,请参阅ibdata文件受innodb_autoextend_increment配置选项。

另请参阅改变缓冲数据字典doublewrite缓冲file-per-table.ibd文件innodb_file_per_table系统表空间undo日志

ibtmp文件

InnoDB临时表空间数据文件对未压缩的InnoDB临时表和相关的对象。配置文件选项,innodb_temp_data_file_path,允许用户为临时表空间数据文件定义相对路径。如果innodb_temp_data_file_path,则默认行为是创建一个自动扩展的12MB数据文件ibtmp1在数据目录中,旁边ibdata1

另请参阅数据文件临时表临时表空间

ib_logfile

一组文件,通常命名为ib_logfile0而且ib_logfile1,形成重做日志.有时也被称为日志组.这些文件记录试图更改其中数据的语句InnoDB表。这些语句在崩溃后启动时自动重播,以纠正不完整事务写入的数据。

该数据不能用于手动恢复;对于这种类型的操作,请使用二进制日志

另请参阅二进制日志日志组重做日志

ilist

在一个InnoDB全文索引,由文档ID和标记的位置信息(即特定的单词)组成的数据结构。

另请参阅全文索引

隐式行锁

行锁InnoDB获得以确保一致性,而无需您特别要求它。

另请参阅行锁

内存数据库

在内存中维护数据的一种数据库系统,以避免由于磁盘I/O以及磁盘块和内存区域之间的转换而产生的开销。一些内存中的数据库牺牲了持久性D设计理念),容易受到硬件、电源和其他类型故障的影响,因此它们更适合只读操作。其他内存中的数据库使用持久性机制,例如对磁盘的日志记录更改或使用非易失性内存。

MySQL处理同样类型的内存密集型处理的特性包括InnoDB缓冲池自适应哈希索引,只读事务优化,内存存储引擎,MyISAM键缓存和MySQL查询缓存。

另请参阅自适应哈希索引缓冲池基于磁盘的只读事务

增量备份

一个类型的热备份,由MySQL企业备份只保存自某个时间点以来更改的数据的产品。拥有完全备份和一系列增量备份可以让您在很长一段时间内重新构建备份数据,而无需在手边保留几个完全备份的存储开销。您可以恢复完全备份,然后依次应用每个增量备份,也可以通过对其应用每个增量备份来保持完全备份是最新的,然后执行单个恢复操作。

更改数据的粒度在页面的水平。一个页面实际上可能包含不止一行。每个更改的页面都包含在备份中。

另请参阅热备份MySQL企业备份页面

指数

提供快速查找功能的数据结构表格,一般采用树形结构(b - tree)表示某一特定对象的所有值的或者说一组列。

InnoDB表格总是有一个聚集索引代表主键.它们也可以有一个或多个二级索引在一个或多个列上定义。根据二级指标的结构,二级指标可分为部分,或复合索引。

指数是查询的性能。数据库架构师设计表、查询和索引,以便快速查找应用程序所需的数据。理想的数据库设计使用一个覆盖索引实用的;查询结果完全从索引计算,不需要读取实际的表数据。每一个外键约束还需要一个索引,以有效地检查两个变量中是否存在值而且孩子表。

虽然b -树索引是最常见的,但使用了一种不同的数据结构散列索引,如在内存存储引擎和InnoDB自适应哈希索引r - tree索引用于多维信息的空间索引。

另请参阅自适应哈希索引b -树子表聚集索引列索引综合指数覆盖索引外键散列索引父表部分指标主键查询r - tree二级索引表格

索引缓存

存储令牌数据的内存区域InnoDB全文搜索.当数据插入或更新到属于a的列中时,它会缓冲数据,以最小化磁盘I/O全文索引.当索引缓存满时,将把令牌数据写入磁盘。每一个InnoDB全文Index拥有自己独立的索引缓存,其大小由配置选项控制innodb_ft_cache_size

另请参阅全文搜索全文索引

指数条件下推

索引条件下推(ICP)是一种优化,它推动了a的一部分在哪里属性中的字段可以计算条件的某些部分,则将条件降至存储引擎指数.ICP可减少次数存储引擎必须访问基本表,以及MySQL服务器必须访问存储引擎的次数。有关更多信息,请参见指数存储引擎

索引提示

的扩展SQL语法索引由优化器推荐。例如,力指数使用索引,忽略指数条款。通常在索引列的值分布不均匀,导致不准确时使用基数估计。

另请参阅基数指数

指数的前缀

在一个指数这适用于多列(称为a综合指数),索引的初始列或前导列。引用复合索引的前1、2、3等列的查询可以使用该索引,即使该查询没有引用该索引中的所有列。

另请参阅综合指数指数

索引统计信息

看到统计数据

下确界记录

一个pseudo-record在一个指数,代表了差距低于该索引中最小的值。如果一个事务有这样的语句选择……从…WHERE col < 10 FOR UPDATE;,并且该列中的最小值为5,则它是对最小记录的锁,防止其他事务插入更小的值,如0、-10等。

另请参阅差距指数pseudo-record上确界记录

INFORMATION_SCHEMA

的名字数据库为MySQL提供查询接口数据字典.(此名称由ANSI SQL标准定义。)要检查关于数据库的信息(元数据),可以查询表,例如INFORMATION_SCHEMA。表而且INFORMATION_SCHEMA。列,而不是使用显示产生非结构化输出的命令。

INFORMATION_SCHEMA数据库还包含特定于的表InnoDB的查询接口InnoDB数据字典。使用这些表不是为了查看数据库的结构,而是为了获得关于工作原理的实时信息InnoDB帮助进行性能监视、调优和故障排除的表。

另请参阅数据字典数据库InnoDB

InnoDB

一个MySQL组件,结合了高性能和事务可靠性、健壮性和并发访问的能力。它体现了设计理念。表示为存储引擎;控件创建或修改的表引擎= INNODB条款。看到InnoDB新表的默认存储引擎是引擎= INNODB不需要条款。

InnoDB桌子是理想的热备份.看到MySQL企业备份不中断正常处理的MySQL服务器备份产品。

另请参阅热备份MySQL企业备份存储引擎事务

innodb_autoinc_lock_mode

innodb_autoinc_lock_mode选项控制使用的算法自动递增锁定.当你有一个自动递增主键,只能对该设置使用基于语句的复制innodb_autoinc_lock_mode = 1.这个设置被称为连续锁模式,因为事务中的多行插入接收连续的自动递增值。如果你有innodb_autoinc_lock_mode = 2,它允许插入操作具有更高的并发性,因此使用基于行的复制而不是基于语句的复制。这个设置被称为交叉锁模式,因为多个多行插入语句同时运行可以接收自动递增交叉的值。设置innodb_autoinc_lock_mode = 0除非出于兼容性目的,否则不应使用。

连续锁定模式(innodb_autoinc_lock_mode = 1)是MySQL 8.0.3之前的默认设置。从MySQL 8.0.3开始,交错锁模式(innodb_autoinc_lock_mode = 2)是默认值,它反映了默认复制类型从基于语句复制到基于行复制的变化。

另请参阅自动递增自动递增锁定插入的代码主键

innodb_file_format

innodb_file_format选项定义了文件格式用于新的InnoDBfile-per-table表空间.当前,您可以指定羚羊而且梭鱼文件格式。

另请参阅羚羊梭鱼文件格式file-per-table一般的表空间innodb_file_per_table系统表空间表空间

innodb_file_per_table

一个重要的配置选项,它影响InnoDB文件存储、可用性特性和I/O特性。在MySQL 5.6.7及更高版本中,默认是启用的。的innodb_file_per_table选择打开file-per-table模式。启用此模式后,新创建的InnoDB表和关联索引可以存储在每个表对应的文件中.ibd文件外,系统表空间

这个选项会影响许多SQL语句的性能和存储注意事项,例如删除表而且截断表

使innodb_file_per_table选项允许您利用诸如表这样的特性压缩中的命名表备份MySQL企业备份

有关更多信息,请参见innodb_file_per_table,压缩file-per-table.ibd文件MySQL企业备份系统表空间

innodb_lock_wait_timeout

innodb_lock_wait_timeout选项设置之间的平衡等待为使共享资源可用,或放弃并处理错误,重新尝试,或在应用程序中进行替代处理。回滚任何InnoDB等待超过指定时间以获取.如果特别有用死锁是由对不同存储引擎控制的多个表的更新引起的;这样的死锁不是检测到自动。

另请参阅死锁死锁检测等待

innodb_strict_mode

innodb_strict_mode选项控制是否InnoDB严格模式,其中通常被视为警告的条件反而会导致错误(底层语句失败)。

另请参阅严格模式

插入

主要的DML业务SQL.插入件的性能是影响产品性能的关键因素数据仓库将数百万行加载到表中的系统OLTP在多个并发连接的系统中,可能会以任意顺序向同一个表中插入行。如果插入性能对您很重要,您应该了解InnoDB功能,例如插入缓冲中使用的改变缓冲,自动递增列。

另请参阅自动递增改变缓冲数据仓库DMLInnoDB插入缓冲OLTPSQL

插入缓冲

以前的名字改变缓冲.在MySQL 5.5中,增加了对二级索引页面的缓冲更改的支持删除而且更新操作。以前,只有来自于插入操作缓冲。首选的术语是“现在”改变缓冲

另请参阅改变缓冲改变缓冲

插入缓冲

将更改存储到次要索引页的技术,产生于插入操作,在改变缓冲而不是立即写入更改,这样就可以执行物理写入来最小化随机I/O。它是一种改变缓冲;其余的是删除缓冲而且清除缓存

如果二级索引被使用,则不使用插入缓冲独特的,因为在写出新条目之前,不能验证新值的唯一性。其他类型的更改缓冲也适用于惟一索引。

另请参阅改变缓冲改变缓冲删除缓冲插入缓冲清除缓存唯一索引

插入意图锁

一个类型的锁的差距这是由插入行插入之前的操作。这种类型的表示插入的意图,如果插入到相同索引间隙的多个事务不在间隙内的相同位置插入,则不需要等待其他事务。有关更多信息,请参见锁的差距第二个关键锁

实例

一个单一的mysqld守护进程管理数据目录表示一个或多个数据库用一套.它在开发、测试等方面很常见复制场景中有多个相同的实例服务器机器,每个都管理自己的数据目录,并侦听自己的端口或套接字。通过一个实例运行disk-bound工作负载时,服务器可能仍然有额外的CPU和内存容量来运行额外的实例。

另请参阅数据目录数据库disk-boundmysqld复制服务器表格

仪表

在源代码级别进行修改,以收集用于调优和调试的性能数据。在MySQL中,通过工具收集的数据通过SQL接口公开INFORMATION_SCHEMA而且PERFORMANCE_SCHEMA数据库。

另请参阅INFORMATION_SCHEMA性能模式

意图独占锁

看到意向锁

意向锁

一种这适用于表,用于指示锁的类型事务意图获取表中的行。不同的事务可以在同一个表上获得不同类型的意图锁,但是第一个事务可以获得一个目的独家(IX)表上的锁防止其他事务获取该表上的任何S或X锁。相反,第一次交易获得一个目的共享表上的IS锁防止其他事务获取该表上的任何X锁。两阶段流程允许按顺序解析锁请求,而不会阻塞锁和兼容的相应操作。有关此锁定机制的更多信息,请参见锁定模式锁定事务

目的共享锁

看到意向锁

拦截器

用于测试或调试应用程序某些方面的代码,无需重新编译或更改应用程序本身的源代码即可启用。

另请参阅命令拦截器连接器/ J连接器/净异常拦截器

反向索引

一种为文档检索系统优化的数据结构,用于InnoDB全文搜索.的InnoDB全文索引,实现为倒置索引,记录文档中每个单词的位置,而不是表行的位置。单个列值(存储为文本字符串的文档)由倒排索引中的许多条目表示。

另请参阅全文搜索全文索引ilist

IOPS

缩写每秒I/O操作次数.特别针对繁忙系统的一种常用测量方法OLTP应用程序。如果该值接近存储设备可以处理的最大值,则应用程序可能成为disk-bound,限制可伸缩性

另请参阅disk-boundOLTP可伸缩性

隔离级别

数据库处理的基础之一。隔离是的缩写;隔离级别是微调性能与结果的可靠性、一致性和可重复性之间的平衡的设置交易同时进行更改和执行查询。

从最高的一致性和保护程度到最低的,InnoDB支持的隔离级别是:可序列化的可重复读取读过承诺,读未提交

InnoDB表中,许多用户可以保持默认隔离级别(可重复读取),用于所有操作。专家用户可能会选择读过承诺水平,因为他们推动可伸缩性的边界OLTP处理过程,或在数据仓库操作期间,微小的不一致不会影响大量数据的聚合结果。边缘的层次(可序列化的而且读未提交)将处理行为改变到很少使用它们的程度。

另请参阅OLTP读过承诺读未提交可重复读取可序列化的事务

J

J2EE

Java平台,企业版:Oracle的企业Java平台。博彩到10bet娱乐城它由用于企业级Java应用程序的API和运行时环境组成。详情请参见http://www.oracle.com/technetwork/java/javaee/overview/index.html.对于MySQL应用程序,您通常使用连接器/ J对于数据库访问,以及应用服务器等TomcatJBoss处理中间层的工作,可选的框架如春天.J2EE栈中经常提供的与数据库相关的特性包括连接池而且故障转移支持。

另请参阅连接池连接器/ J故障转移JavaJBoss春天Tomcat

Java

一种结合了高性能、丰富的内置特性和数据类型、面向对象机制、广泛的标准库和广泛的可重用第三方模块的编程语言。企业开发受到许多框架、应用服务器和其他技术的支持。它的大部分语法是熟悉的C而且c++开发人员。要用MySQL编写Java应用程序,需要使用JDBC司机被称为连接器/ J

另请参阅C连接器/ Jc++JDBC

JBoss

另请参阅J2EE

JDBC

缩写Java数据库连接,一个APIJava应用程序。编写MySQL应用程序的Java开发人员使用连接器/ J组件作为JDBC驱动程序。

另请参阅API连接器/ JJ2EEJava

JNDI

另请参阅Java

加入

一个查询通过引用包含相同值的表中的列,从多个表检索数据。理想情况下,这些列是InnoDB外键关系,确保参照完整性连接列是索引.通过将重复的字符串替换为数字id,通常用于节省空间和提高查询性能归一化数据设计。

另请参阅外键指数归一化查询参照完整性

K

密钥存储库

另请参阅SSL

KEY_BLOCK_SIZE

控件中指定数据页大小的选项InnoDB表使用压缩行格式.默认值是8千字节。较低的值有可能触及依赖于行大小和压缩百分比组合的内部限制。

MyISAM表,KEY_BLOCK_SIZE可选地指定索引键块使用的字节大小。该值被视为一个提示;如果需要,可以使用不同的尺寸。一个KEY_BLOCK_SIZE为单个索引定义指定的值将重写表级KEY_BLOCK_SIZE价值。

另请参阅压缩行格式

l

门闩

由。使用的一种轻量级结构InnoDB实现一个对于它自己的内部内存结构,通常保持一个以毫秒或微秒测量的短时间。包括两者的总称互斥锁(专享访问)和rw-locks(共享访问)。某些闩锁是重点InnoDB性能调优。闩锁使用和争用的统计信息可以通过性能模式接口。

另请参阅锁定互斥锁性能模式rw-lock

libmysql

的非正式名称libmysqlclient图书馆。

另请参阅libmysqlclient

libmysqlclient

库文件,名为libmysqlclient.alibmysqlclient.so,通常被链接到客户端编写的程序在C.有时被非正式地称为libmysql或者是mysqlclient图书馆。

另请参阅客户端libmysqlmysqlclient

libmysqld

嵌入式MySQL服务器库可以运行一个功能齐全的MySQL服务器在一个客户端应用程序。它的主要好处是提高了速度,并使嵌入式应用程序的管理更加简单。你链接到libmysqld图书馆而不是libmysqlclient.这三个库之间的API是相同的。

另请参阅客户端嵌入式libmysqllibmysqlclient

生命周期的拦截器

一个类型的拦截器支持的连接器/ J.它涉及到接口的实现com.mysql.jdbc.ConnectionLifecycleInterceptor

另请参阅连接器/ J拦截器

列表

InnoDB缓冲池表示为一个内存列表页面.当新的页面被访问并进入缓冲池时,当缓冲池中的页面被再次访问并被认为是更新的时,以及当长时间未被访问的页面被认为是更新的时,列表会被重新排序驱逐从缓冲池。缓冲池分为子列表,而替换政策是熟悉政策的一个变种LRU技术。

另请参阅缓冲池驱逐LRU页面子表

负载平衡

一种通过向复制或集群配置中的不同从服务器发送查询请求来扩展只读连接的技术。与连接器/ J,负载均衡通过com.mysql.jdbc.ReplicationDriver类,并由配置属性控制loadBalanceStrategy

另请参阅连接器/ JJ2EE

本地主机

另请参阅连接

控件中控制对资源(如表、行或内部数据结构)的访问的对象的高级概念锁定策略。对于密集的性能调优,您可以深入研究实现锁的实际结构,例如互斥锁而且门闩

另请参阅门闩锁定模式锁定互斥锁

锁升级

在某些数据库系统中用于转换多个数据的一种操作行锁成一个单一的表锁,节省内存空间,但减少了对表的并发访问。InnoDB使用行锁的空间高效表示,以便不需要升级。

另请参阅锁定行锁表锁

锁定模式

一个共享的(S)允许一个事务读取一行。多个事务可以同时获得同一行上的S锁。

独占(X)锁允许事务更新或删除一行。其他事务不能同时获得同一行上的任何类型的锁。

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

另请参阅意向锁锁定事务

锁定

保护…的制度事务从查看或更改正在被其他事务查询或更改的数据。的锁定策略必须平衡数据库操作的可靠性和一致性(原则)哲学)与良好的表现相抵触并发性.微调锁定策略通常包括选择隔离级别并确保该隔离级别的所有数据库操作都是安全可靠的。

另请参阅并发性隔离级别锁定事务

读锁

一个选择语句,该语句也执行锁定操作在一个InnoDB表格要么选择……更新选择……共享模式锁定.它有可能产生死锁,视乎隔离级别的事务。a的反义词非自读.中不允许全局表只读事务

选择……为分享替换选择……共享模式锁定在MySQL 8.0.1中,但是共享模式锁定仍然可以向后兼容。

看到死锁隔离级别锁定非自读只读事务

日志

InnoDB背景下,日志日志文件通常指的是重做日志所代表的ib_logfileN文件。另一种类型的InnoDB日志是undo日志,它是一个存储区域,用于保存活动事务修改的数据副本。

MySQL中其他重要的日志类型是错误日志(用于诊断启动和运行时问题),二进制日志(用于处理复制和执行时间点恢复)通用查询日志(用于诊断应用程序问题),以及慢速查询日志(用于诊断性能问题)。

另请参阅二进制日志错误日志通用查询日志ib_logfile重做日志慢速查询日志undo日志

日志缓冲区

存储要写入的数据的内存区域日志文件构成了重做日志.它是由innodb_log_buffer_size配置选项。

另请参阅日志文件重做日志

日志文件

其中的一个ib_logfileN组成重做日志.将数据写入这些文件日志缓冲区内存区域。

另请参阅ib_logfile日志缓冲区重做日志

日志组

组成的文件集重做日志,通常叫ib_logfile0而且ib_logfile1.(因此,有时统称为ib_logfile)。

另请参阅ib_logfile重做日志

逻辑

一种操作类型,涉及高级抽象方面,如表、查询、索引和其他SQL概念。通常,逻辑方面对于使数据库管理和应用程序开发变得方便和可用非常重要。与物理

另请参阅逻辑备份物理

逻辑备份

一个备份这将重新生成表结构和数据,而不复制实际的数据文件。例如,, mysqldump命令生成逻辑备份,因为它的输出包含如下语句创建表而且插入可以重新创建数据。与物理备份.逻辑备份提供了灵活性(例如,可以在恢复之前编辑表定义或插入语句),但恢复所需的时间要长得多恢复而不是物理备份。

另请参阅备份, mysqldump物理备份恢复

loose_

添加到InnoDB服务器后的配置选项启动,所以任何新的配置选项不被当前的MySQL级别识别,都不会导致启动失败。MySQL处理以这个前缀开始的配置选项,但是如果前缀后面的部分不是一个可识别的选项,则给出警告而不是失败。

另请参阅启动

最低点

一个表示下限的值,通常是一个阈值,在这个阈值上,某些纠正操作开始或变得更激进。与高水位线

另请参阅高水位线

LRU

的缩写最近最少使用,是管理存储区域的常用方法。最近没有使用过的物品是驱逐当需要空间来缓存较新的项时。InnoDB缺省情况下使用LRU机制管理页面缓冲池,但是对于页面可能只读取一次的情况,例如在全表扫描.LRU算法的这种变体称为中点插入策略.有关更多信息,请参见缓冲池驱逐全表扫描中点插入策略页面

LSN

缩写日志序列号.函数中记录的操作对应于这个任意的、不断增加的值重做日志.(这个时间点是无关紧要的事务边界;它可以位于一个或多个事务的中间。)它是由InnoDB崩溃恢复对于管理缓冲池

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

MySQL企业备份产品时,您可以指定LSN来表示从哪个时间点开始获取增量备份.对应的LSN通过命令的输出显示mysqlbackup命令。一旦有了与完全备份时间相对应的LSN,就可以指定该值进行后续增量备份,其输出包含下一次增量备份的另一个LSN。

另请参阅缓冲池崩溃恢复增量备份MySQL企业备份重做日志事务

.MRG文件

对象使用的包含对其他表的引用的文件合并存储引擎。控件生成的备份中总是包含具有此扩展名的文件mysqlbackup命令的MySQL企业备份产品。

另请参阅MySQL企业备份mysqlbackup命令

.MYD文件

MySQL用来存储数据库数据的文件MyISAM表格

另请参阅.MYI文件MySQL企业备份mysqlbackup命令

.MYI文件

MySQL用来存储索引的文件MyISAM表格

另请参阅.MYD文件MySQL企业备份mysqlbackup命令

看到

掌握线程

一个InnoDB线程在后台执行各种任务。这些任务中的大多数都与I/O相关,例如从改变缓冲到适当的二级索引。

改善并发性,有时动作会从主线程移动到独立的后台线程。例如,在MySQL 5.6及更高版本中,脏页刷新缓冲池页面干净线程而不是主线程。

另请参阅缓冲池改变缓冲并发性脏页冲洗页面干净线程

MDL

缩写元数据锁

另请参阅元数据锁

媒介的信任

的同义词部分信任.因为信任设置的范围很广,部分信任首选,以避免暗示只有三个级别(低、中和全级别)。

另请参阅连接器/净部分信任

memcached

许多MySQL和NoSQL软件栈,允许对单个值进行快速读写,并将结果完全缓存到内存中。传统上,应用程序需要额外的逻辑来将相同的数据写入MySQL数据库以永久存储,或者当数据还没有缓存在内存中时从MySQL数据库读取数据。现在,应用程序可以使用简单memcached该协议被多种语言的客户端库支持,可以直接与MySQL服务器进行通信InnoDBNDB表。与直接发出SQL语句相比,这些MySQL表的NoSQL接口允许应用程序获得更高的读写性能,并且可以简化已经合并的系统的应用程序逻辑和部署配置memcached对内存中的缓存。

memcached接口InnoDBtable在MySQL 5.6及更高版本中可用;看到memcached接口NDB表在NDB Cluster 7.2及更高版本中可用;看到http://dev.10bet靠谱mysql.com/doc/ndbapi/en/ndbmemcache.html获取详细信息。

另请参阅InnoDBNoSQL

合并

将更改应用于内存中缓存的数据,例如当将页面引入缓冲池,以及任何适用的更改改变缓冲合并到缓冲池中的页中。更新后的数据最终写入表空间冲洗机制。

另请参阅缓冲池改变缓冲冲洗表空间

元数据锁

一个类型的这就阻止了DDL对一个表的操作,同时被另一个表使用事务.有关详细信息,请参见在线操作,特别是在MySQL 5.6和更高版本中,主要关注于减少元数据锁定的数量。目标是不改变表结构的DDL操作(例如创建索引而且指数下降InnoDB表),以便在其他事务查询、更新表等时继续执行。

另请参阅DDL在线事务

度量计数器

实现的特性INNODB_METRICS表中INFORMATION_SCHEMA, MySQL 5.6或更高版本。您可以查询计数以及低水平的总数InnoDB操作,并将结果与数据结合起来进行性能调优性能模式

另请参阅计数器INFORMATION_SCHEMA性能模式

中点插入策略

最初带来的技术页面InnoDB缓冲池不是在最新的在列表的末尾,但不是在中间的某个位置。这个点的确切位置可以根据设置的不同而不同innodb_old_blocks_pct选择。目的是使页面只被读取一次,例如在全表扫描,可以比使用strict更快地被老化出缓冲池LRU算法。有关更多信息,请参见缓冲池全表扫描LRU页面

mini-transaction

的内部相InnoDB处理时,在物理期间级到内部数据结构DML操作。迷你交易(mtr)没有这个概念回滚;一个事务中可以发生多个迷你事务事务.微型事务将信息写入重做日志这是在崩溃恢复.迷你事务也可以发生在常规事务的上下文之外,例如在期间清洗后台线程处理。

另请参阅提交崩溃恢复DML物理清洗重做日志回滚事务

插入的代码

一个插入声明,自动递增值指定了一些新行,但不是所有新行。例如,多值插入是否可以在某些情况下为自动递增列指定一个值在其他情况下。InnoDB为列值指定为的行生成自动递增值.另一个例子是插入……关于重复密钥更新语句,对于作为处理方式的任何重复行,可能生成但不使用自动递增值更新而不是插入语句。

会导致一致性问题吗而且副本服务器复制配置。需要调整的值可以吗innodb_autoinc_lock_mode配置选项。

另请参阅自动递增innodb_autoinc_lock_mode副本复制

MM.MySQL

一个较老的MySQL JDBC驱动程序,它演变成连接器/ J当它与MySQL产品集成时。

另请参阅连接器/ J

莫诺

一个由Novell开发的开源框架连接器/净而且c#Linux平台上的应用程序。

另请参阅连接器/净c#

地铁

看到mini-transaction

多核

一种可以利用多线程程序的处理器,如MySQL服务器。

多版本并发控制

看到MVCC

互斥锁

非正式的缩写互斥变量.(互斥锁本身是互斥)。底层对象InnoDB用于表示和强制独占访问到内存中的内部数据结构。一旦获得了锁,任何其他进程、线程等都将被阻止获得相同的锁。与rw-locks,这InnoDB用于表示和强制共享访问到内存中的内部数据结构。互斥锁和读写锁统称为门闩

另请参阅门闩性能模式Pthreadsrw-lock

MVCC

缩写多版本并发控制.这种技术允许InnoDB交易与某些隔离级别执行一致的阅读操作;也就是说,查询正在被其他事务更新的行,并查看这些更新发生之前的值。这是一个强大的提高技巧并发性,通过允许查询继续而无需等待由其他交易持有。

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

另请参阅并发性一致的阅读隔离级别事务

my.cnf

在Unix或Linux系统中,MySQL的名称选择文件

另请参阅my.ini选择文件

my.ini

在Windows系统中,MySQL的名称选择文件

另请参阅my.cnf选择文件

MyODBC司机

过时的名字连接器/ ODBC

另请参阅连接器/ ODBC

mysql

mysql程序是MySQL数据库的命令行解释器。It过程SQL语句,以及mysql特定的命令,例如显示表,通过将请求传递给mysqld守护进程。

另请参阅mysqldSQL

MySQL企业备份

执行的授权产品热备份MySQL数据库。它在备份时提供了最大的效率和灵活性InnoDB表,还可以备份MyISAM还有其他种类的桌子。

另请参阅热备份InnoDB

mysqlbackup命令

的命令行工具MySQL企业备份产品。它执行一个热备份操作InnoDB表,MyISAM还有其他种类的桌子。看到热备份MySQL企业备份热备份

mysqlclient

由文件实现的库的非正式名称libmysqlclient,扩展.一个所以

另请参阅libmysqlclient

mysqld

mysqld,也被称为MySQL服务器,是一个单独的多线程程序,它完成了MySQL安装中的大部分工作。它不会产生额外的进程。MySQL服务器管理对MySQL数据目录的访问,该目录包含数据库、表和其他信息,如日志文件和状态文件。

mysqld作为Unix守护进程或Windows服务运行,不断等待请求并在后台执行维护工作。

另请参阅实例mysql

MySQLdb

开源的名称Python模块,它是MySQL的基础Python API

另请参阅PythonPython API

, mysqldump

执行逻辑备份数据库、表和表数据的某种组合。结果是生成原始模式对象、数据或同时生成原始模式对象和数据的SQL语句。对于大量的数据,a物理备份解决方案等MySQL企业备份更快,尤其是对恢复操作。

另请参阅逻辑备份MySQL企业备份物理备份恢复

N

net

另请参阅ADO。网ASP.net连接器/净莫诺Visual Studio

本机C API

的同义词libmysqlclient

另请参阅libmysql

自然的关键

索引列,通常为主键,其中的值具有一定的现实意义。通常被反对,因为:

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

  • 即使看似稳定的值也会以不可预测的方式发生变化,很难在数据库中正确表示。例如,一个国家可以变成两个或几个国家,使原来的国家代码过时。或者,关于惟一值的规则可能有例外。例如,即使纳税人的id对单个人来说是唯一的,数据库也可能必须处理违反该规则的记录,例如身份盗窃的情况。纳税人ID和其他敏感ID号的主键也很差,因为它们可能需要安全、加密,以及与其他列不同的处理方式。

因此,通常最好使用任意数值来形成一个合成的关键,例如使用自动递增列。

另请参阅自动递增聚集索引主键二级索引合成的关键

邻居页面

任何页面在相同的程度上作为一个特定的页面。当页面被选中时刷新,任何邻居页面作为对传统硬盘的I/O优化,通常也会刷新。在MySQL 5.6及以上版本中,这种行为可以通过配置变量来控制innodb_flush_neighbors;您可以将此设置用于SSD驱动器,因为SSD驱动器在随机位置写入小批量数据时没有相同的开销。

另请参阅脏页程度上冲洗页面

第二个关键锁

A的组合记录锁在索引记录和锁的差距锁定记录锁

非自读

一个查询它不使用选择……更新选择……共享模式锁定条款。中全局表允许的唯一一种查询只读事务.a的反义词读锁.看到第14.7.2.3节,"一致的非锁定读取"

选择……为分享替换选择……共享模式锁定在MySQL 8.0.1中,但是共享模式锁定仍然可以向后兼容。

另请参阅读锁查询只读事务

不可重复读

查询检索数据,而后面的查询在同一查询中检索数据的情况事务检索应该是相同的数据,但查询返回不同的结果(由同时提交的另一个事务更改)。

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

在不同的隔离级别,防止不可重复读取可串行化的阅读而且可重复读取水平,并允许一致的阅读,读未提交的水平。

另请参阅一致的阅读隔离级别读未提交可重复读取可序列化的事务

非阻塞I / O

这个行业术语的意思是异步I / O

另请参阅异步I / O

归一化

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

例如,可以给一个地址一个唯一的ID,这样人口普查数据库就可以表示这种关系住在这个地址通过将该ID与家族中的每个成员关联,而不是存储复杂值的多个副本,例如美国Anytown大街123号

另一个例子是,虽然一个简单的地址簿应用程序可能将每个电话号码作为人名和地址存储在同一个表中,但电话公司的数据库可能为每个电话号码提供一个特殊的ID,并将这些号码和ID存储在一个单独的表中。这种标准化表示可以简化区号分离时的大规模更新。

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

另请参阅规范化的外键OLTP关系

NoSQL

一组不使用的数据访问技术的广义术语SQL语言是它们读写数据的主要机制。一些NoSQL技术充当键值存储,只接受单值读写;一些放宽了限制方法;还有一些不需要预先计划模式.MySQL用户可以将nosql风格的处理与SQL操作相结合,以提高速度和简单性memcached直接访问MySQL表的API。的memcached接口InnoDBtable在MySQL 5.6及更高版本中可用;看到memcached接口NDB表在NDB Cluster 7.2及更高版本中可用;看到NDB集群的memcache API(不再支持)

另请参阅InnoDBmemcached模式SQL

非空约束

一个类型的约束它指定了不能包含任何值。它有助于保存参照完整性,因为数据库服务器可以识别带有错误缺失值的数据。它还有助于查询优化所涉及的算法,允许优化器预测该列上索引中的条目数量。

另请参阅约束主键参照完整性

的特殊值SQL,表示没有资料。涉及到。的任何算术运算或等式检验值,反过来产生一个结果。(因此,它类似于IEEE NaN的浮点概念,不是一个数字)。任何聚合计算,例如AVG ()忽略了行值时,确定除以多少行。唯一可行的测试值使用SQL习惯用法为空不是零

价值观起了一定作用指数操作,因为为了性能,数据库必须尽量减少跟踪丢失数据值的开销。通常情况下,值不存储在索引中,因为使用标准比较操作符测试索引列的查询永远无法使用值。出于同样的原因,唯一索引也不能阻止值;这些值没有在索引中表示出来。声明一个非空对列的约束可以确保索引中没有多余的行,从而实现更好的查询优化(准确的行计数和是否使用索引的估计)。

因为主键必须能够唯一标识表中的每一行,单列主键不能包含任何值,并且多列主键不能包含具有的任何行值。

虽然Oracle数据库允许值与字符串连接,InnoDB将此类操作的结果处理为

另请参阅指数主键SQL

O

.OPT文件

包含数据库配置信息的文件。控件生成的备份中包含具有此扩展名的文件mysqlbackup命令的MySQL企业备份产品。

另请参阅MySQL企业备份mysqlbackup命令

ODBC

开放数据库连接的缩写,一个行业标准的API。通常用于基于windows的服务器,或需要ODBC与MySQL通信的应用程序。调用MySQL ODBC驱动程序连接器/ ODBC

另请参阅连接器/ ODBC

线下列

包含可变长度数据的列(例如而且VARCHAR)太长了,装不上b -树页面。数据存储在溢出页.的动态对于这种存储,行格式比旧格式更有效紧凑的行格式。

另请参阅b -树紧凑行格式动态行格式溢出页

OLTP

缩写联机事务处理.一个数据库系统或数据库应用程序,它运行的工作负载有许多交易,经常写入和读取,通常一次只影响少量数据。例如,航空公司预订系统或处理银行存款的应用程序。数据可能被组织在归一化形成一种平衡DML(插入/更新/删除)效率和查询效率。与数据仓库

与它的行级锁而且事务能力,InnoDB是OLTP应用程序中使用的MySQL表的理想存储引擎。

另请参阅数据仓库DMLInnoDB查询行锁事务

在线

一种不涉及数据库停机、阻塞或受限操作的操作类型。一般应用于DDL.缩短受限操作周期的操作,如快速创建索引,已经演变成更广泛的在线DDLMySQL 5.6中的操作。

在备份上下文中,a热备份是一个在线操作和一个热备份部分是在线操作。

另请参阅DDL快速创建索引热备份在线DDL热备份

在线DDL

改进性能、并发性和可用性的特性InnoDB表在DDL(主要是ALTER TABLE)操作。看到ALTER TABLE正在进行中。该操作可以在没有表复制的情况下执行,也可以使用特殊优化的表复制类型。控件控制就地操作的DML日志空间使用情况innodb_online_alter_log_max_size配置选项。

该特性是对快速创建索引MySQL 5.5的特性。

另请参阅DDL快速创建索引在线

乐观

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

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

与乐观策略相反的是悲观一是系统经过优化,能够处理不可靠且经常失败的操作。这种方法在数据库系统中很少见,因为在选择可靠的硬件、网络和算法方面花费了太多精力。

另请参阅提交并发性DML锁定悲观参照完整性

优化器

MySQL组件决定最好的索引而且加入用于查询,根据相关数据的特点和分布情况

另请参阅指数加入查询表格

选项

MySQL的配置参数,存储在选择文件或传递到命令行。

选项适用于InnoDB表中,每个选项名称以前缀开始innodb_

另请参阅InnoDB选项选择文件

选择文件

保存配置的文件选项查询MySQL实例。传统上,在Linux和Unix上,这个文件被命名为my.cnf,在Windows上命名为my.ini

另请参阅配置文件my.cnfmy.ini选项

溢出页

单独分配磁盘页面保存可变长度列(例如而且VARCHAR)太长了,不能放在一个b -树页面。相关的列被称为线下列

另请参阅b -树线下列页面

P

.par文件

包含分区定义的文件。控件生成的备份中包含具有此扩展名的文件mysqlbackup命令的MySQL企业备份产品。

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

另请参阅MySQL企业备份mysqlbackup命令

页面

表示多少数据的单位InnoDB在任意时间在磁盘之间传输数据文件)和记忆缓冲池).一个页面可以包含一个或多个,这取决于每行有多少数据。如果一行不能完全放入一页,InnoDB设置其他指针样式的数据结构,以便将有关行的信息存储在一个页面中。

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

InnoDB为了提高I/O吞吐量,它会读取或写入一组页作为批处理程度上在一个时间。

所有的InnoDBMySQL实例中的磁盘数据结构也相同页面大小

另请参阅缓冲池紧凑行格式压缩行格式数据文件程度上页面大小

页面干净

一个InnoDB背景线程脏页缓冲池.在MySQL 5.6之前,此活动由掌握线程.控件控制页清除器线程的数量innodb_page_cleaners配置选项,在MySQL 5.7.4中引入。

另请参阅缓冲池脏页冲洗掌握线程线程

页面大小

对于包括MySQL 5.5在内的版本,每个版本的大小是相同的InnoDB页面固定为16kb。这个值表示一种平衡:大到足以容纳大多数行的数据,但小到足以最小化将不需要的数据传输到内存的性能开销。不测试或不支持其他值。

从MySQL 5.6开始,页面大小为InnoDB实例可以是4KB、8KB或16KB,由innodb_page_size配置选项。从MySQL 5.7.6开始,InnoDB还支持32KB和64KB的页面大小。对于32KB和64KB的页面大小,ROW_FORMAT =压缩不支持,最大记录大小为16KB。

页面大小在创建MySQL实例时设置,并且在创建后保持不变。相同的页面大小适用于所有InnoDB表空间,包括系统表空间file-per-table表空间,一般的表空间

较小的页面大小可以帮助使用小块大小的存储设备提高性能,特别是对于固态硬盘设备disk-bound工作负载,例如forOLTP应用程序。当单个行被更新时,将更少的数据复制到内存、写入磁盘、重新组织、锁定等等。

另请参阅disk-boundfile-per-table一般的表空间实例OLTP页面固态硬盘系统表空间表空间

父表

表在一个外键对象中指向的初始列值子表.在父表中删除或更新行的结果取决于在更新而且在删除外键定义中的子句。子表中具有相应值的行可以自动删除或依次更新,也可以将这些列设置为,否则就可以阻止手术。

另请参阅子表外键

部分备份

一个备份包含一些在MySQL数据库中,或者MySQL实例中的一些数据库中。与完全备份

另请参阅备份完全备份表格

部分指标

一个指数只表示列值的一部分,通常是前N个字符前缀)长的VARCHAR价值。

另请参阅指数指数的前缀

部分信任

通常由托管提供者使用的执行环境,其中应用程序具有某些权限,但没有其他权限。例如,应用程序可能能够通过网络访问数据库服务器,但不能沙箱关于读写本地文件。

另请参阅连接器/净

性能模式

performance_schema在MySQL 5.5及以上版本中,schema提供了一组表,你可以通过查询这些表来获得MySQL服务器许多内部部件的性能特征的详细信息。看到INFORMATION_SCHEMA门闩互斥锁rw-lock

Perl

一种基于Unix脚本和报告生成的编程语言。集成高性能正则表达式和文件I/O。通过诸如CPAN之类的存储库提供的大量可重用模块集合。

另请参阅Perl API

Perl API

一个开源的API的MySQL应用程序Perl语言。实现通过DBI而且DBD:: mysql模块。有关详细信息,请参见APIPerl

持续的统计数据

存储的特性指数统计数据InnoDB在磁盘上,提供更好的计划稳定查询.有关更多信息,请参见指数优化器计划稳定查询表格

悲观

一种为了安全而牺牲性能或并发性的方法。如果大量的请求或尝试可能会失败,或者失败的请求的后果很严重,那么这种方法是合适的。InnoDB使用所谓的悲观主义锁定策略,把机会降到最低死锁.在应用程序级别,可以通过使用悲观策略来避免死锁,即在一开始就获取事务所需的所有锁。

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

另请参阅死锁锁定乐观

幻影

出现在查询的结果集中,但未出现在较早查询的结果集中的行。例如,如果一个查询在事务,与此同时,另一个事务在插入新行或更新行以便与在哪里查询的子句。

这种情况被称为幻读。防患于未然不可重复读,因为锁定第一个查询结果集中的所有行并不会阻止导致幻象出现的更改。

在不同的隔离级别,幻像读取是由可串行化的阅读水平,和允许的可重复读取一致的阅读,读未提交的水平。

另请参阅一致的阅读隔离级别不可重复读读未提交可重复读取可序列化的事务

PHP

起源于web应用程序的一种编程语言。代码通常作为块嵌入到web页面的源代码中,当它通过web服务器传输时,输出被替换到页面中。这与CGI脚本等以整个网页的形式打印输出的应用程序相反。PHP风格的代码用于高度交互和动态的网页。现代的PHP程序还可以作为命令行或GUI应用程序运行。

MySQL应用程序是使用PHP api.可以写入可重用模块C并从PHP调用。

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

另请参阅ASP.netCPHP API

PHP API

几个api的MySQL应用程序的PHP最初的MySQL API (MysqlMySQL改进扩展(MysqliMySQL本地驱动程序(Mysqlnd) MySQL函数(PDO_MYSQL),连接器/ PHP。有关详细信息,请参见MySQL和PHP

另请参阅APIPHP

物理

一种操作类型,涉及到与硬件相关的方面,如磁盘块、内存页、文件、位、磁盘读取等。通常,物理方面在专家级性能调优和问题诊断过程中非常重要。与逻辑

另请参阅逻辑物理备份

物理备份

一个备份它复制实际的数据文件。例如,mysqlbackup命令的MySQL企业备份产品生成物理备份,因为其输出包含可由mysqld服务器,导致更快恢复操作。与逻辑备份

另请参阅备份逻辑备份MySQL企业备份恢复

PITR

缩写时间点恢复

另请参阅时间点恢复

计划稳定

的一个性质查询执行计划,其中优化器每次对给定的参数做出相同的选择查询,以便性能是一致的和可预测的。

另请参阅查询查询执行计划

时间点恢复

恢复数据的过程备份在特定日期和时间重新创建数据库的状态。常用的缩写PITR.由于指定的时间不太可能与备份的时间完全对应,因此这种技术通常需要结合使用物理备份和一个逻辑备份.例如,用MySQL企业备份产品,则恢复在指定时间点之前进行的最后一次备份,然后从二进制日志备份时间与PITR时间之间的时间间隔。

另请参阅备份二进制日志逻辑备份MySQL企业备份物理备份

港口

数据库服务器侦听的TCP/IP套接字的编号,用于建立一个连接.常与a连用宿主.根据您对网络加密的使用情况,可能有一个端口用于未加密通信流,另一个端口用于SSL连接。

另请参阅连接宿主SSL

前缀

看到指数的前缀

准备备份

生成的一组备份文件MySQL企业备份产品,后各阶段应用二进制日志而且增量备份是完成了。结果文件已经准备好了恢复.在apply步骤之前,这些文件称为原始备份

另请参阅二进制日志热备份增量备份MySQL企业备份原始备份恢复

事先准备好的声明中

一种提前分析以确定有效执行计划的SQL语句。它可以被执行多次,而不会有每次解析和分析的开销。中的字面值可以替换不同的值在哪里子句,通过使用占位符。这种替换技术提高了安全性,可以防止某些SQL注入攻击。还可以减少将返回值转换和复制到程序变量的开销。

虽然可以通过SQL语法直接使用预处理语句,但各种连接器有用于操作准备好的语句的编程接口,而且这些api比使用SQL更有效。

另请参阅客户端预置语句连接器服务器端预置语句

主键

一组列——也就是说,基于这组列的索引——可以唯一地标识表中的每一行。因此,它必须是一个唯一的索引,不包含任何值。

InnoDB要求每个表都有这样的索引(也称为聚集索引集群指数),并根据主键的列值组织表存储。

当选择主键值时,考虑使用任意值(a合成的关键)而不是依赖于从其他来源(a自然的关键).

另请参阅聚集索引指数自然的关键合成的关键

过程

正在执行的程序的实例操作系统在多个运行进程之间切换,允许一定程度的并发性.在大多数操作系统中,进程可以包含多个线程共享资源的执行。线程间的上下文切换比同等的进程间切换要快。

另请参阅并发性线程

pseudo-record

索引中的人工记录,用于锁定当前不存在的键值或范围。

另请参阅下确界记录锁定上确界记录

Pthreads

POSIX线程标准,它定义了Unix和Linux系统上线程化和锁定操作的API。在Unix和Linux系统中,InnoDB将此实现用于互斥锁

另请参阅互斥锁

清洗

由一个或多个独立的后台线程执行的一种垃圾收集类型innodb_purge_threads),它按周期运行。清除解析和处理undo日志页面的历史列表为了删除被标记为删除的聚集索引和二级索引记录(由previous删除语句),不再需要MVCC回滚.清除处理后将从历史记录列表中释放撤消日志页。

另请参阅历史列表MVCC回滚undo日志

清除缓存

将更改存储到次要索引页的技术,产生于删除操作,在改变缓冲而不是立即写入更改,这样就可以执行物理写入来最小化随机I/O。(因为删除操作是一个两步过程,这个操作缓冲了通常会清除先前标记为删除的索引记录的写操作。)它是一种改变缓冲;其余的是插入缓冲而且删除缓冲

另请参阅改变缓冲改变缓冲删除缓冲插入缓冲插入缓冲

清洗滞后

它的另一个名字InnoDB历史列表.有关innodb_max_purge_lag配置选项。

另请参阅历史列表清洗

清洗线

一个线程InnoDB专门用于执行周期的过程清洗操作。在MySQL 5.6及更高版本中,多个清除线程被启用innodb_purge_threads配置选项。

另请参阅清洗线程

Python

一种广泛应用于各个领域的编程语言,从Unix脚本到大规模应用程序。包括运行时类型、内置高级数据类型、面向对象特性和扩展的标准库。常用作胶水用其他语言编写的组件之间的语言。MySQLPython API是开源的MySQLdb模块。

另请参阅MySQLdbPython API

Python API

另请参阅APIPython

查询

SQL,从一个或多个对象中读取信息的操作.根据数据的组织和查询的参数,可以通过查询指数.如果涉及多个表,则查询称为加入

由于历史原因,有时会讨论语句使用的内部处理查询在更广泛的意义上,包括其他类型的MySQL语句,例如DDL而且DML语句。

另请参阅DDLDML指数加入SQL表格

查询执行计划

优化器所做的关于如何执行查询最有效,包括哪个指数或者使用索引,以及索引的顺序加入表。计划稳定涉及对给定查询做出一致的相同选择。

另请参阅指数加入计划稳定查询

查询日志

看到通用查询日志

静默

为了减少数据库活动的数量,通常是为诸如ALTER TABLE,一个备份,或者一个关闭.可能需要也可能不需要这么做冲洗尽可能的,这样InnoDB不继续做后台I/O。

在MySQL 5.6及更高版本中,语法刷新表……用于出口将一些数据写入磁盘InnoDB通过复制数据文件使备份这些表变得更简单的表。

另请参阅备份冲洗InnoDB关闭

R

r - tree

一种树状数据结构,用于多维数据(如地理坐标、矩形或多边形)的空间索引。

另请参阅b -树

突袭

缩写廉价驱动器冗余阵列.将I/O操作分散到多个驱动器可以实现更大的性能并发性在硬件级别,并提高了低级别写操作的效率,否则将按顺序执行。

另请参阅并发性

随机的潜水

一种快速估计列中不同值数量的技术基数).InnoDB从索引中随机取样页面,并使用这些数据来估计不同值的数量。

另请参阅基数

原始备份

生成的初始备份文件集MySQL企业备份产品,以前的变化体现在二进制日志和任何增量备份应用。在这个阶段,文件还没有准备好恢复.应用这些更改之后,这些文件被称为准备备份

另请参阅二进制日志热备份ibbackup_logfile增量备份MySQL企业备份准备备份恢复

读过承诺

一个隔离级别使用锁定策略放松了一些之间的保护交易,为了业绩的利益。事务不能看到来自其他事务的未提交的数据,但可以看到当前事务启动后另一个事务提交的数据。因此,事务永远不会看到任何坏数据,但它看到的数据可能在某种程度上取决于其他事务的时间。

当执行具有此隔离级别的事务时更新……在哪里删除……在哪里操作,其他事务可能需要等待。事务可以执行选择……更新,共享模式锁定无需其他事务等待的操作。

选择……为分享替换选择……共享模式锁定在MySQL 8.0.1中,但是共享模式锁定仍然可以向后兼容。

另请参阅隔离级别锁定可重复读取可序列化的事务

读现象

现象,比如脏读不可重复读,幻影读取,当一个事务读取另一个事务修改的数据时发生。

另请参阅脏读不可重复读幻影

读未提交

隔离级别这在事务之间提供了最少的保护。查询使用锁定允许他们在通常等待另一个事务的情况下继续进行的策略。然而,这种额外的性能是以不太可靠的结果为代价的,包括已被其他事务更改且尚未提交的数据(称为脏读).请谨慎使用此隔离级别,并注意结果可能不一致或不可重复,这取决于与此同时正在执行的其他事务。通常,具有此隔离级别的事务只执行查询,而不执行插入、更新或删除操作。

另请参阅脏读隔离级别锁定事务

阅读观点

控件使用的内部快照MVCC的机制InnoDB.某些交易,取决于他们的隔离级别,查看事务(或在某些情况下,语句)开始时的数据值。使用读取视图的隔离级别为可重复读取读过承诺,读未提交

另请参阅隔离级别MVCC读过承诺读未提交可重复读取事务

预读

一种I/O请求类型,预取一组页面(整个程度上)到缓冲池异步方式,以防很快需要这些页面。线性预读技术根据对前一个区中的页的访问模式预取一个区中的所有页。随机预读技术一旦缓冲池中有相同区段的一定数量的页,就会预取区段的所有页。随机预读并不是MySQL 5.5的一部分,但在MySQL 5.6中被重新引入innodb_random_read_ahead配置选项。

另请参阅缓冲池程度上页面

只读事务

一个类型的事务它可以被优化InnoDB表通过消除创建时涉及的一些簿记阅读观点对于每个事务。只能执行非自读查询。可以使用语法显式地启动它开始事务只读,或在一定条件下自动。看到非自读阅读观点事务

记录锁

一个SELECT c1 FROM t WHERE c1 = 10 FOR UPDATE;阻止任何其他事务插入、更新或删除值为t.c1是10。与锁的差距而且第二个关键锁

另请参阅锁的差距第二个关键锁

重做

数据,以记录为单位,记录在重做日志InnoDB表。它是在崩溃恢复正确的数据写入不完整交易.不断增长的LSN值表示通过重做日志的重做数据的累积量。

另请参阅崩溃恢复DMLLSN重做日志事务

重做日志

期间使用的基于磁盘的数据结构崩溃恢复,以纠正所写数据的不完整交易.在正常操作期间,它对更改请求进行编码InnoDB表数据,它来自于SQL语句或通过NoSQL接口调用的低级API。未完成更新的修改数据文件在一个意想不到的关闭是自动重播。

重做日志在物理上表示为一组文件,通常命名为ib_logfile0而且ib_logfile1.重做日志中的数据按照受影响的记录进行编码;这些数据统称为重做.数据通过重做日志的传递用不断增加的表示LSN价值。在MySQL 5.6.3中,重做日志的最大大小从原来的4GB提高到512GB。

重做日志的磁盘布局受配置选项的影响innodb_log_file_sizeinnodb_log_group_home_dir,(很少)innodb_log_files_in_group.重做日志操作的性能也会受到日志缓冲区,由innodb_log_buffer_size配置选项。

另请参阅崩溃恢复数据文件ib_logfile日志缓冲区LSN重做关闭事务

重做日志进行归档

一个InnoDB当启用时,可以将重做日志记录顺序写入归档文件,以避免在备份操作进行时,当备份实用程序无法跟上重做日志生成时可能发生的数据丢失。有关更多信息,请参见重做日志进行归档

另请参阅重做日志

冗余行格式

最古老的InnoDB行格式.在MySQL 5.0.3之前,它是唯一可用的行格式InnoDB.从MySQL 5.0.3到MySQL 5.7.8,默认行格式为紧凑的.在MySQL 5.7.9中,默认行格式是由innodb_default_row_format配置选项,其默认设置为动态.您仍然可以指定冗余行格式与旧的兼容InnoDB表。

有关更多信息,请参见紧凑行格式动态行格式行格式

参照完整性

以一致的格式维护数据的技术哲学。特别地,不同表中的数据通过使用外键约束,它可以防止发生更改,或自动将这些更改传播到所有相关的表。相关机制包括唯一约束,以防止错误地插入重复值,而非空约束,以防止错误地插入空白值。

另请参阅外键约束非空约束唯一约束

关系

现代数据库系统的一个重要方面。数据库服务器对一对一、一对多、多对一和惟一等关系进行编码和强制。例如,一个人的地址数据库中可能有0个、1个或多个电话号码;一个电话号码可能与几个家庭成员相关联。在金融数据库中,可能要求一个人只有一个纳税人ID,而任何纳税人ID只能与一个人关联。

数据库服务器可以使用这些关系来防止插入错误的数据,并找到查找信息的有效方法。例如,如果一个值被声明为唯一的,那么一旦找到第一个匹配,服务器就可以停止搜索,并且可以拒绝插入相同值的第二个副本的尝试。

在数据库级别,这些关系通过SQL特性表示,例如在表中,唯一和非空约束外键,以及不同类型的连接操作。复杂关系通常涉及多个表之间的数据分割。通常,数据是归一化,这样一对多关系中的重复值只存储一次。

在数学环境中,数据库中的关系来源于集合论。例如,而且运营商的在哪里子句表示并集和交集的概念。

另请参阅约束外键归一化

相关性

全文搜索特性,一个数字,表示搜索字符串与中数据之间的相似性全文索引.例如,当您搜索单个单词时,该单词通常与在文本中出现多次的行更相关,而与只出现一次的行更相关。

另请参阅全文搜索全文索引

可重复读取

默认的隔离级别InnoDB.它防止被查询的任何行被他人更改交易,从而阻止不可重复读但不是幻影读取。它使用适度严格锁定策略,以便事务中的所有查询都看到来自同一个快照的数据,即事务开始时的数据。

当执行具有此隔离级别的事务时更新……在哪里删除……在哪里选择……更新,共享模式锁定操作,其他事务可能需要等待。

选择……为分享替换选择……共享模式锁定在MySQL 8.0.1中,但是共享模式锁定仍然可以向后兼容。

另请参阅一致的阅读隔离级别锁定幻影事务

曲目

保留符是一个适用于字符集的术语。字符集保留表是字符集中的字符集合。看到 副本

一个数据库服务器机在一个复制从另一个服务器接收更改的拓扑)并应用相同的更改。因此,它保持了与源相同的内容,尽管它可能会有些落后。

在MySQL中,副本通常用于灾难恢复,以取代发生故障的源。它们还通常用于测试软件升级和新设置,以确保数据库配置更改不会导致性能或可靠性问题。

副本通常具有较高的工作负载,因为它们要处理所有DML(写)来自源的操作,以及用户查询。为了确保副本能够足够快地应用来自源的更改,它们通常有快速的I/O设备和足够的CPU和内存来在同一台服务器上运行多个数据库实例。例如,源可能使用硬盘驱动器存储,而副本使用固态硬盘年代。

另请参阅DML复制服务器固态硬盘

复制

控件中发送更改的实践,到一个或多个副本,这样所有数据库都有相同的数据。这种技术具有广泛的用途,例如用于更好的可伸缩性的负载平衡、灾难恢复以及测试软件升级和配置更改。更改可以通过调用的方法在数据库之间发送基于行的复制而且statement-based复制

另请参阅副本基于行的复制statement-based复制

恢复

将一组备份文件从MySQL企业备份产品到位,供MySQL使用。此操作可用于修复已损坏的数据库、返回到较早的时间点或(在复制上下文)来设置新的副本.在MySQL企业备份产品,此操作由复制回去选择的mysqlbackup命令。

另请参阅热备份MySQL企业备份mysqlbackup命令准备备份副本复制

回滚

一个SQL语句结束事务,撤消事务所做的任何更改。它是相反的提交,使在事务中所做的任何更改成为永久的。

默认情况下,MySQL使用自动提交设置,它自动在每个SQL语句之后发出一个提交。在使用回滚技术之前,必须更改此设置。

另请参阅自动提交提交SQL事务

回滚段

的存储区域undo日志.回滚段传统上位于系统表空间.从MySQL 5.6开始,回滚段可以驻留在撤消表空间.从MySQL 5.7开始,回滚段也被分配给全局临时表空间

另请参阅系统表空间undo日志撤消表空间

的集合定义的逻辑数据结构.一组行组成一个表格.在InnoDB数据文件,每个页面可以包含一行或多行。

虽然InnoDB使用这个术语行格式为了与MySQL语法保持一致,行格式是每个表的一个属性,适用于该表中的所有行。

另请参阅数据文件页面行格式表格

行格式

的磁盘存储格式一个InnoDB表格.作为InnoDB获得新的功能,例如压缩,引入新的行格式,以支持由此带来的存储效率和性能的改进。

控件的行格式InnoDB表指定ROW_FORMAT选项或由innodb_default_row_format配置选项(MySQL 5.7.9中引入)。行格式包括冗余紧凑的压缩,动态.的行格式InnoDB表,问题显示表状态声明或查询InnoDB中的表元数据。INFORMATION_SCHEMA

另请参阅紧凑行格式压缩行格式压缩动态行格式冗余行格式表格

行锁

一个防止一行被另一行以不兼容的方式访问事务.同一表中的其他行可以由其他事务自由写入。这是一种锁定DML上的操作InnoDB表。

表锁所使用的MyISAM,或在DDL上的操作InnoDB无法处理的表在线DDL;这些锁阻塞对表的并发访问。

另请参阅DDLDMLInnoDB锁定在线DDL表锁事务

基于行的复制

的一种形式复制事件从何处传播控件上的单个行副本.的所有设置都可以安全使用innodb_autoinc_lock_mode选择。

另请参阅自动递增锁定innodb_autoinc_lock_mode副本复制statement-based复制

行级锁

锁定机制用于InnoDB表、依赖行锁而不是表锁.多个交易可以并发地修改同一个表。只有当两个事务试图修改同一行时,其中一个事务才会等待另一个事务完成(并释放其行锁)。

另请参阅InnoDB锁定行锁表锁事务

Ruby

一种强调动态类型和面向对象编程的编程语言。有些语法是熟悉的Perl开发人员。有两种流行的Ruby api开发MySQL应用程序。(本手册不涉及高级Ruby框架。)

另请参阅APIPerlRuby API

Ruby API

有两种api可用于Ruby程序员开发MySQL应用程序。MySQL/Ruby API是基于libmysqlclientAPI库。Ruby/MySQL API是使用本地MySQL网络协议(一个本地驱动程序)编写的。详情请参见libmysqlRuby

rw-lock

底层对象InnoDB用于表示和强制共享访问内存中的内部数据结构遵循一定的规则。与互斥锁,这InnoDB用于表示和强制对内存中内部数据结构的独占访问。互斥锁和读写锁统称为门闩

rw-lock类型包括s-locks(共享锁),独占锁(专用锁),sx-locks(shared-exclusive锁)。

  • 一个s锁提供对公共资源的读访问。

  • 一个独占锁提供对公共资源的写访问,同时不允许其他线程进行不一致的读取。

  • 一个sx-lock提供对公共资源的写访问,同时允许其他线程进行不一致的读取。sx-locks在MySQL 5.7中引入,以优化并发性并提高读写工作负载的可伸缩性。

下面的矩阵总结了rw-lock类型兼容性。

年代 SX X
年代 兼容的 兼容的 冲突
SX 兼容的 冲突 冲突
X 冲突 冲突 冲突

另请参阅门闩互斥锁性能模式

年代

保存点

保存点有助于实现嵌套交易.它们可用于为属于较大事务一部分的表上的操作提供作用域。例如,在预订系统中安排一次旅行可能需要预订多个不同的航班;如果你想要的航班没有,你可能会回滚这些变化包括预订这一段航班,而不需要返回先前成功预订的航班。

另请参阅回滚事务

可伸缩性

能够向系统添加更多的工作并同时发出更多请求,而不会因为超出系统容量的限制而导致性能突然下降。软件架构、硬件配置、应用程序编码和工作负载类型都在可伸缩性中发挥作用。当系统达到其最大容量时,增加可伸缩性的常用技术是按比例增加(增加现有硬件或软件的容量)和向外扩展(添加新的服务器和更多的MySQL实例)。通常搭配可用性作为大规模部署的关键方面。

另请参阅可用性向外扩展按比例增加

向外扩展

增加的技术可伸缩性通过添加新的服务器和更多的MySQL实例。例如,设置复制、NDB集群、连接池或其他跨一组服务器分散工作的特性。与按比例增加

另请参阅可伸缩性按比例增加

按比例增加

增加的技术可伸缩性通过增加现有硬件或软件的容量。例如,增加服务器上的内存,调整内存相关参数通过innodb_buffer_pool_size而且innodb_buffer_pool_instances.与向外扩展

另请参阅可伸缩性向外扩展

模式

从概念上讲,模式是一组相互关联的数据库对象,例如表、表列、列的数据类型、索引、外键等等。这些对象通过SQL语法连接,因为列组成表,外键指向表和列,等等。理想情况下,它们还可以逻辑连接,作为统一应用程序或灵活框架的一部分一起工作。例如,INFORMATION_SCHEMA而且performance_schema数据库使用模式在它们的名称中强调它们所包含的表和列之间的密切关系。

在MySQL中,物理上,a模式是a的同义词数据库.您可以替换关键字模式而不是数据库在MySQL SQL语法中,例如使用创建模式而不是创建数据库

其他一些数据库产品对此进行了区分。例如,在Oracle数据库产品中,a模式仅表示数据库的一部分:单个用户拥有的表和其他对象。

另请参阅数据库INFORMATION_SCHEMA性能模式

搜索索引

在MySQL中,全文搜索查询使用一种特殊的索引全文索引.在MySQL 5.6.4及以上版本中InnoDB而且MyISAM表都支持全文索引;以前,这些索引只能用于MyISAM表。

另请参阅全文搜索全文索引

二级索引

一个类型的InnoDB指数表示表列的子集。一个InnoDB表可以有0个、1个或多个二级索引。(对比聚集索引,这是每个人都需要的InnoDB,并存储表中所有列的数据。)

辅助索引可用于满足只需要来自已索引列的值的查询。对于更复杂的查询,可以使用它来标识表中的相关行,然后通过使用聚集索引进行查找来检索这些行。

创建和删除二级索引通常涉及大量开销,因为要复制所有数据InnoDB表格的快速创建索引特性使得两创建索引而且指数下降语句更快InnoDB二级索引。

另请参阅聚集索引快速创建索引指数

内部的分裂InnoDB表空间.如果表空间类似于目录,则段类似于该目录中的文件。一个细分市场可以增长。可以创建新的段。

例如,在file-per-table表空间,表数据在一个段中,每个相关的索引在它自己的段中。的系统表空间包含许多不同的段,因为它可以保存许多表及其关联的索引。在MySQL 8.0之前,系统表空间还包括一个或多个回滚段用于undo日志

段随着数据的插入和删除而增长和收缩。当一个片段需要更多的空间时,它会被扩展一个程度上(1兆字节)一次。类似地,当一个区段中的所有数据不再需要时,段释放该区段的空间值。

另请参阅程度上file-per-table回滚段系统表空间表空间undo日志

选择性

数据分布的一种属性,即一列中不同值的数量基数)除以表中记录的数量。高选择性意味着列值相对惟一,可以通过索引高效地检索。如果您(或查询优化器)能够预测在哪里子句只匹配表中的一小部分(或部分)行,即总体查询如果它使用索引先计算该测试,则会更有效。

另请参阅基数查询

semi-consistent读

用于。的一种读操作更新语句,那是一种组合读过承诺而且一致的阅读.当一个更新语句检查已经锁定的行,InnoDB返回最新提交的版本到MySQL,以便MySQL可以确定行是否匹配在哪里的条件更新.如果行匹配(必须更新),MySQL再次读取行,这一次InnoDB要么给它上锁,要么等待上锁。这种类型的读操作只能发生在事务有read COMMITTED的情况下隔离级别,或者当innodb_locks_unsafe_for_binlog选择启用。innodb_locks_unsafe_for_binlog在MySQL 8.0中被删除。

另请参阅一致的阅读隔离级别读过承诺

可序列化的

隔离级别这使用了最保守的锁定策略,以防止任何其他交易从插入或更改事务读取的数据,直到事务完成为止。这样,同一个查询可以在一个事务中反复运行,并确保每次都检索相同的结果集。自当前事务开始以来,任何更改由另一个事务提交的数据的尝试都会导致当前事务等待。

这是由SQL标准指定的默认隔离级别。在实践中,很少需要这种严格程度,因此默认的隔离级别为InnoDB是第二严格的,可重复读取

另请参阅一致的阅读隔离级别锁定可重复读取事务

服务器

一种连续运行的程序,等待接收来自另一个程序的请求并对其采取行动客户端).因为通常整个计算机专用于运行一个或多个服务器程序(如数据库服务器、web服务器、应用服务器或这些程序的一些组合),所以这个术语服务器也可以指计算机上运行的服务器软件。

另请参阅客户端mysqld

服务器端预置语句

一个事先准备好的声明中由MySQL服务器管理。历史上,服务器端准备语句的问题导致连接器/ J而且连接器/ PHP开发人员有时使用客户端准备好的语句代替。对于现代的MySQL服务器版本,建议使用服务器端准备好的语句来提高性能、可伸缩性和内存效率。

另请参阅客户端预置语句连接器/ J连接器/ PHP事先准备好的声明中

servlet

另请参阅连接器/ J

共享锁

一种允许其他交易读取锁定对象,并获取该对象上的其他共享锁,但不写入该对象。相反的独占锁

另请参阅独占锁事务

共享表空间

指代的另一种方式系统表空间或者一个一般的表空间.一般表空间是在MySQL 5.7中引入的。共享表空间中可以有多个表。控件中只能驻留一个表file-per-table表空间。

另请参阅一般的表空间系统表空间

锋利的检查点

的过程冲洗磁盘上所有的某些部分中包含重做条目的缓冲池页重做日志.发生之前InnoDB重用日志文件的一部分;日志文件以循环的方式使用。通常发生在写密集的情况下工作负载

另请参阅脏页冲洗重做日志工作负载

关闭

停止MySQL服务器进程。默认情况下,该进程清除InnoDB表,因此InnoDB可以要关机,但要快,稍后再启动。如果跳过清理操作,则为关闭,但必须在下次重新启动期间执行清理操作。

的关机模式InnoDB是由innodb_fast_shutdown选择。

另请参阅快速关闭InnoDB缓慢关闭启动

奴隶

看到副本

慢速查询日志

一个类型的日志用于MySQL服务器处理的SQL语句的性能调优。日志信息保存在一个文件中。您必须启用该特性才能使用它。你可以控制哪一类记录SQL语句。有关更多信息,请参见通用查询日志日志

缓慢关闭

一个类型的关闭做额外的InnoDB完成之前的冲洗操作。也被称为a干净的关闭.由配置参数指定innodb_fast_shutdown = 0或命令集全球innodb_fast_shutdown = 0;.虽然关闭本身可能需要更长的时间,但应该在随后的启动中节省时间。

另请参阅干净的关闭快速关闭关闭

快照

数据在特定时间的表示形式,即使发生变化也保持不变承诺由其他交易.使用特定的隔离级别允许一致的读取

另请参阅提交一致的阅读隔离级别事务

排序缓冲区

数据库创建过程中用于对数据进行排序的缓冲区InnoDB索引。排序缓冲区大小是使用innodb_sort_buffer_size配置选项。

数据库服务器机器复制处理初始数据插入、更新和删除请求的场景。这些更改将传播到其他服务器,并在其上重复副本

另请参阅副本复制

空间ID

用于唯一标识的标识符InnoDB表空间在MySQL实例中。的空间ID系统表空间总是为零;这个相同的ID适用于系统表空间或普通表空间中的所有表。每一个file-per-table表空间和一般的表空间有自己的空间ID。

在MySQL 5.6之前,这个硬编码的值很难移动InnoDBMySQL实例之间的表空间文件。从MySQL 5.6开始,你可以使用移动式表空间涉及语句的特性刷新表……用于出口ALTER TABLE……丢弃表空间,ALTER TABLE……导入表空间.调整空间ID所需的信息在. cfg文件它和表空间一起复制。看到. cfg文件file-per-table一般的表空间.ibd文件系统表空间表空间移动式表空间

稀疏文件

一种文件类型,通过将表示空块的元数据写入磁盘,而不是写入实际的空空间,从而更有效地使用文件系统空间。的InnoDB透明页面压缩特性依赖于稀疏文件支持。有关更多信息,请参见InnoDB页面压缩

另请参阅孔冲孔透明页面压缩

自旋

一个类型的等待连续测试资源是否可用的操作。这种技术用于通常只持有短时间的资源,在短时间内等待更有效繁忙的循环而不是让线程进入睡眠状态并执行上下文切换。如果资源在短时间内不可用,则自旋循环停止,并使用另一种等待技术。

另请参阅门闩互斥锁等待

春天

一个基于java的应用程序框架,通过提供一种配置组件的方法来帮助应用程序设计。

另请参阅J2EE

SQL

结构化查询语言,是执行数据库操作的标准语言。通常分为几类DDLDML,查询.MySQL包含一些额外的语句类别,例如复制.看到DDLDML查询复制

SQLState

控件定义的错误代码JDBC标准,用于应用程序使用的异常处理连接器/ J

另请参阅连接器/ JJDBC

固态硬盘

缩写固态驱动器.一种与传统硬盘驱动器性能不同的存储设备(硬盘驱动器):存储容量更小,随机读取速度更快,没有移动部件,并且有很多影响写性能的考虑因素。它的性能特性可以影响a的吞吐量disk-bound工作负载。

另请参阅disk-bound硬盘驱动器

SSL

缩写安全套接字层.提供加密层,用于应用程序与MySQL数据库服务器之间的网络通信。

另请参阅密钥存储库信任存储库

启动

启动MySQL服务器的进程。通常是由列在关闭

另请参阅关闭

声明拦截器

一个类型的拦截器用于跟踪、调试或扩充数据库应用程序发出的SQL语句。有时也被称为a命令拦截器

Java应用程序使用连接器/ J,设置这种类型的拦截器涉及到实现com.mysql.jdbc.StatementInterceptorV2接口,并添加一个statementInterceptors财产连接字符串

Visual Studio应用程序使用连接器/净,设置这种类型的拦截器涉及定义一个继承自BaseCommandInterceptor类,并将类名指定为连接字符串的一部分。

另请参阅命令拦截器连接字符串连接器/ J连接器/净拦截器JavaVisual Studio

statement-based复制

的一种形式复制SQL语句从然后在副本.这需要注意设置innodb_autoinc_lock_mode选项,以避免潜在的时间问题自动递增锁定

另请参阅自动递增锁定innodb_autoinc_lock_mode副本复制基于行的复制

统计数据

与每一个相关的估计值InnoDB表格而且指数,用来构造高效的查询执行计划.主要的价值是基数(不同值的数量)和表行或索引条目的总数。表的统计信息表示其中的数据主键索引。的统计数据二级索引表示该索引覆盖的行。

这些值是估计的,而不是精确计算的,因为在任何时刻,都是不同的交易可以从同一个表中插入和删除行。要避免频繁地重新计算值,可以启用持续的统计数据,值存储在其中InnoDB系统表,并且仅在发出分析表声明。

你可以控制方法计算统计信息时处理值innodb_stats_method配置选项。

控件可用于数据库对象和数据库活动的其他统计信息类型INFORMATION_SCHEMA而且PERFORMANCE_SCHEMA表。

另请参阅基数指数INFORMATION_SCHEMA性能模式持续的统计数据主键查询执行计划二级索引表格事务

阻止

基于一个共同的词根搜索单词的不同变体的能力,如单数和复数,或过去、现在和将来动词时态。目前支持此特性MyISAM全文搜索特色但不在全文索引InnoDB表。

另请参阅全文搜索全文索引

stopword

在一个全文索引,一个被认为是非常普通或微不足道的词,因此被省略搜索索引并且在搜索查询中被忽略。不同的配置设置控制停止字处理InnoDB而且MyISAM表。看到全文索引搜索索引

存储引擎

MySQL数据库的一个组件,它执行存储、更新和查询数据的低级工作。在MySQL 5.5及更高版本中,InnoDB默认的存储引擎是对新表进行替换吗MyISAM.在设计不同的存储引擎时,在内存使用与磁盘使用、读速度与写速度、速度与健壮性等因素之间进行了不同的权衡。每个存储引擎管理特定的表,因此我们引用InnoDB表,MyISAM表格等等。

MySQL企业备份产品针对备份进行了优化InnoDB表。它还可以备份由MyISAM和其他存储引擎。

另请参阅InnoDBMySQL企业备份表类型

存储对象

存储的程序或视图。

存储程序

存储的例程(过程或函数)、触发器或事件调度器事件。

存储程序

存储过程或函数

严格模式

控件控制的设置的通用名称innodb_strict_mode选择。打开此设置会导致某些通常被视为警告的条件被认为是错误。例如,与相关的选项的某些无效组合文件格式而且行格式,通常会产生警告并继续使用默认值,现在会导致创建表操作失败。innodb_strict_mode在MySQL 5.7中默认启用。

MySQL还有一个叫做严格模式的东西。看到文件格式innodb_strict_mode行格式

子表

的列表结构中缓冲池,相对较旧和相对较新的页面由列表.一组参数控制这些部分的大小以及新旧页面之间的分隔点。

另请参阅缓冲池驱逐列表LRU

上确界记录

一个pseudo-record在索引中,表示差距高于该指数的最大值。如果一个事务有这样的语句选择……从…WHERE col > 10 FOR UPDATE;,并且该列中最大的值为20,则它是最高记录上的一个锁,防止其他事务插入更大的值,如50、100等。

另请参阅差距下确界记录pseudo-record

代理键

同义词的名字合成的关键

另请参阅合成的关键

合成的关键

索引列,通常为主键,其中的值是任意赋值的。通常使用自动递增列。通过将该值视为完全任意的值,可以避免过于严格的规则和错误的应用程序假设。例如,表示员工编号的数字序列可能会有一个空白,如果某个员工被批准招聘,但实际上从未加入。或者第100名员工的雇佣日期可能比第500名员工晚,如果他们离开了公司,然后又重新加入。数值也产生可预测长度的较短的值。例如,存储数字代码的含义大道高速公路等等比一遍又一遍地重复这些字符串更节省空间。

也被称为a代理键.与自然的关键

另请参阅自动递增自然的关键主键代理键

系统表空间

一个或多个数据文件(ibdata文件)包含元数据InnoDB有关的对象(InnoDB数据字典),以及存放物品的地方改变缓冲,doublewrite缓冲,可能undo日志.根据innodb_file_per_table设置时,它还可能包含表和索引数据InnoDB表。system表空间中的数据和元数据适用于所有系统数据库在MySQL实例

在MySQL 5.6.7之前,默认是保留所有InnoDB系统表空间中的表和索引,经常导致这个文件变得非常大。因为系统表空间永远不会缩小,如果加载并删除大量临时数据,就可能出现存储问题。在MySQL 5.6.7及更高版本中,默认为file-per-table模式,其中每个表及其关联索引存储在单独的.ibd文件.这个默认设置使它更容易使用InnoDB依赖于梭鱼文件格式,如表格压缩,高效储存线下列和大索引键前缀(innodb_large_prefix).

将所有表数据保存在系统表空间中或单独存放.ibd文件通常对存储管理有影响。的MySQL企业备份产品可能备份一小部分大文件,也可能备份许多较小的文件。在具有数千个表的系统上,文件系统操作要处理数千个表.ibd文件可能会导致瓶颈。

在MySQL 5.6及更高版本中innodb_undo_tablespaces定义用于undo日志的undo表空间的数量。

另请参阅梭鱼改变缓冲压缩数据字典数据库doublewrite缓冲动态行格式file-per-table一般的表空间.ibd文件ibdata文件innodb_file_per_table实例MySQL企业备份线下列表空间undo日志

T

.TRG文件

包含触发器参数的文件。控件生成的备份中总是包含具有此扩展名的文件mysqlbackup命令的MySQL企业备份产品。

另请参阅MySQL企业备份mysqlbackup命令.TRN文件

.TRN文件

包含触发器命名空间信息的文件。控件生成的备份中总是包含具有此扩展名的文件mysqlbackup命令的MySQL企业备份产品。

另请参阅MySQL企业备份mysqlbackup命令.TRG文件

表格

每个MySQL表都与一个特定的表相关联存储引擎InnoDB表有特殊的物理而且逻辑影响性能的特征,可伸缩性备份、管理和应用程序开发。

在文件存储方面InnoDB表属于以下表空间类型:

  • 共享InnoDB系统表空间,它由一个或多个组成ibdata文件

  • 一个file-per-table表空间,由个人组成.ibd文件

  • 一个共享的一般的表空间,由一个人组成.ibd文件。一般表空间是在MySQL 5.7.6中引入的。

.ibd数据文件包含表和指数数据。

InnoDB在逐表文件的表空间中创建的表可以使用梭鱼文件格式,和梭鱼表可以使用动态压缩行格式。这些行格式支持InnoDB等特性压缩,高效储存线下列和大索引键前缀(请参见innodb_large_prefix).一般的表空间支持所有的行格式innodb_file_format设置。

MySQL 5.7.5InnoDB系统表空间内的表必须使用羚羊文件格式,以向后兼容MySQL 5.1及更早版本。的羚羊文件格式支持紧凑的而且冗余行格式。系统表空间支持使用动态行格式,MySQL 5.7.6版本。

一个InnoDB表被组织成索引结构,称为聚集索引,条目按主键表的列。对于对主键列进行筛选和排序的查询,数据访问进行了优化,每个索引都包含每个条目的相关主键列的副本。修改任何主键列的值都是一个开销很大的操作。因此,一个重要的方面InnoDB表设计是选择一个主键,其中的列用于最重要的查询,并保持主键短,很少更改值。

另请参阅羚羊备份梭鱼聚集索引紧凑行格式压缩行格式压缩动态行格式快速创建索引file-per-table.ibd文件指数线下列主键冗余行格式系统表空间表空间

表锁

一种防止其他锁的锁事务从访问一个表。InnoDB通过使用以下技术,使此类锁变得不必要在线DDL行锁而且一致的读取进行处理DML语句和查询.可以通过SQL创建这样的锁锁表声明;从其他数据库系统或MySQL存储引擎迁移的步骤之一是在任何可行的地方删除这些语句。

另请参阅一致的阅读DML锁定在线DDL查询行锁表格事务

表扫描

看到全表扫描

表统计信息

看到统计数据

表类型

过时的同义词存储引擎.我们将InnoDB表,MyISAM表格等等。

另请参阅InnoDB存储引擎

表空间

可以为一个或多个用户保存数据的数据文件InnoDB和相关的索引

系统表空间包含了InnoDB数据字典,而在MySQL 5.6之前则包含了所有其他的InnoDB默认表。

innodb_file_per_table选项(MySQL 5.6及更高版本默认启用)允许在自己的表空间中创建表。每个表的文件表空间支持高效存储线下列表压缩和可移植的表空间。看到InnoDB在MySQL 5.7.6中引入了通用表空间。一般的表空间是共享的表空间创建表空间语法。它们可以在MySQL数据目录之外创建,能够保存多个表,并支持所有行格式的表。

MySQL NDB集群还将它的表分成表空间。看到第18.5.10.1节," NDB集群磁盘数据对象"获取详细信息。

另请参阅压缩行格式数据字典数据文件file-per-table一般的表空间指数innodb_file_per_table系统表空间表格

Tcl

一种起源于Unix脚本世界的编程语言。有时通过编写的代码进行扩展Cc++,或Java.对于开源TclAPIMySQL,请参阅API

临时表

一个表格它们的数据不需要真正永久。例如,在复杂的计算或转换中,临时表可以用作中间结果的存储区域;在崩溃后不需要恢复这个中间数据。数据库产品可以采取各种快捷方式来提高对临时表的操作的性能,比如不那么严格地将数据写入磁盘,以及采取其他措施来在重新启动时保护数据。

有时,数据本身会在特定的时间自动删除,例如事务结束或会话结束时。对于某些数据库产品,表本身也会自动删除。

另请参阅表格

临时表空间

非压缩的表空间InnoDB临时表和相关对象,在MySQL 5.7中引入。的innodb_temp_data_file_path配置文件选项定义临时表空间数据文件的相对路径、名称、大小和属性。如果innodb_temp_data_file_path,则默认行为是创建一个自动扩展的12MB数据文件ibtmp1在数据目录下。在每个服务器启动时重新创建临时表空间,并接收动态生成的空间ID。临时表空间不能驻留在原始设备上。如果无法创建临时表空间,启动将被拒绝。

在正常关闭或中止初始化时删除临时表空间。当发生崩溃时,不会删除临时表空间。在这种情况下,数据库管理员可以手动删除临时表空间,或者使用相同的配置重新启动服务器,这样就可以删除并重新创建临时表空间。

另请参阅临时表

文本集合

控件中包含的列集全文索引

另请参阅全文索引

线程

一种处理单元,通常比一种处理单元更轻过程,允许更大的并发性

另请参阅并发性掌握线程过程Pthreads

Tomcat

一个开源的J2EE应用服务器,实现了Java Servlet和JavaServer Pages编程技术。由一个web服务器和Java servlet容器组成。与MySQL一起使用,通常与连接器/ J

另请参阅J2EE

撕页

由于I/O设备配置和硬件故障而发生的错误情况。如果数据以小于的块写入InnoDB页面大小(默认为16KB),写入时硬件故障可能导致只将页面的一部分存储到磁盘。的InnoDBdoublewrite缓冲防止这种可能性。

另请参阅doublewrite缓冲

TPS

缩写交易每秒,有时在基准测试中使用的一种度量单位。它的值取决于工作负载由特定的基准测试以及您控制的因素(如硬件容量和数据库配置)表示。

另请参阅事务工作负载

事务

事务是工作的原子单位承诺回滚.当事务对数据库进行多次更改时,要么提交事务时所有更改都成功,要么回滚事务时所有更改都撤销。

数据库事务,由InnoDB,具有由首字母缩略词共同知道的属性,用于原子性、一致性、隔离性和持久性。

另请参阅提交隔离级别回滚

事务ID

与每个字段相关联的内部字段.这个领域在物理上是由插入更新,删除记录的操作事务锁定了这一排。

另请参阅隐式行锁事务

透明页面压缩

MySQL 5.7.8中添加的一个特性,允许对InnoDB中的表file-per-table表空间。页面压缩可以通过指定压缩属性与创建表ALTER TABLE.有关更多信息,请参见InnoDB页面压缩

另请参阅file-per-table孔冲孔稀疏文件

移动式表空间

允许表空间从一个实例移到另一个实例。传统上,这是不可能的InnoDB表空间,因为所有表数据都是系统表空间.在MySQL 5.6及更高版本中刷新表……用于出口语法准备一个InnoDB用于复制到另一个服务器的表;运行ALTER TABLE……丢弃表空间而且ALTER TABLE……导入表空间在另一个服务器上,将复制的数据文件放到另一个实例中。一个单独的. cfg文件,随附.ibd文件,用于更新表元数据(例如空间ID)作为表空间导入。看到. cfg文件.ibd文件空间ID系统表空间表空间

故障排除

确定问题来源的过程。一些解决MySQL问题的资源包括:

  • 截断

    一个DDL删除表的全部内容,同时保持表和相关索引不变的操作。与下降.虽然在概念上它和a有相同的结果删除声明中没有在哪里子句,它在幕后的运作方式不同:InnoDB创建一个新的空表,删除旧表,然后重命名新表以取代旧表。因为这是DDL操作,所以不可能是这样回滚

    如果被截断的表包含外键当引用另一个表时,截断操作使用一种较慢的操作方法,每次删除一行,以便被引用的表中相应的行可以根据需要删除在级联删除条款。(MySQL 5.5及更高版本不允许这种较慢的截断形式,如果涉及外键,则返回错误。在这种情况下,使用删除语句代替。

    另请参阅DDL下降外键回滚

    信任存储库

    另请参阅SSL

    元组

    一个技术术语,表示元素的有序集合。它是一个抽象的概念,用于数据库理论的正式讨论。在数据库字段中,元组通常由表行的列表示。它们也可以由查询的结果集表示,例如,只检索表中的某些列的查询,或来自合并表的列。

    另请参阅光标

    两阶段提交

    是分布式系统的一部分的操作事务下,XA规范。(有时缩写为2PC。)当多个数据库参与事务时,可以是所有数据库提交更改或全部数据库回滚更改。

    另请参阅提交回滚事务XA

U

撤销

在整个生命周期中维护的数据事务,记录所有更改,以便在发生的情况下可以撤消回滚操作。它被储存在undo日志要么在系统表空间(在MySQL 5.7或更早版本)或单独使用撤消表空间.从MySQL 8.0开始,缺省情况下,undo日志位于undo表空间中。

另请参阅回滚回滚段系统表空间事务undo日志撤消表空间

撤销缓冲区

看到undo日志

undo日志

一种存储区域,用于保存被活动修改的数据的副本交易.如果另一个事务需要查看原始数据(作为一致的阅读操作),则从该存储区域检索未修改的数据。

在MySQL 5.6和MySQL 5.7中,可以使用innodb_undo_tablespaces变量有undo日志驻留撤消表空间,可以放置在另一个存储设备上,如固态硬盘.在MySQL 8.0中,undo日志存在于两个默认的undo表空间中,这两个表空间是在MySQL初始化时创建的,另外的undo表空间可以使用创建撤消表空间语法。

undo日志被分成几个单独的部分插入撤销缓冲区更新撤销缓冲区

另请参阅一致的阅读回滚段固态硬盘系统表空间事务撤消表空间

undo日志部分

的集合undo日志.内部存在Undo日志段回滚段.一个撤消日志段可能包含来自多个事务的撤消日志。一个undo日志段一次只能被一个事务使用,但是在事务释放它之后可以重用提交回滚.也可以被称为撤销段

另请参阅提交回滚回滚段undo日志

撤消表空间

undo表空间包含undo日志.Undo日志存在于undo日志部分,它们包含在内部回滚段.回滚段通常位于系统表空间中。从MySQL 5.6开始,回滚段可以驻留在undo表空间中。在MySQL 5.6和MySQL 5.7中,撤销表空间的数量由innodb_undo_tablespaces配置选项。在MySQL 8.0中,初始化MySQL实例时会创建两个默认的undo表空间,并且可以使用创建撤消表空间语法。

有关更多信息,请参见回滚段系统表空间undo日志undo日志部分

Unicode

灵活、标准化地支持国家字符、字符集、代码页和其他国际化方面的系统。

Unicode支持是一个重要方面ODBC标准。连接器/ ODBC5.1是Unicode驱动程序,而Connector/ODBC 3.51是一个ANSI司机。

另请参阅ANSI连接器/ ODBCODBC

唯一约束

一种约束它断言列不能包含任何重复值。而言,关系代数,它被用来指定1对1的关系。为了检查是否可以插入值(即该值在列中不存在),底层支持唯一约束唯一索引

另请参阅约束关系唯一索引

唯一索引

具有。的一列或一组列的索引唯一约束.因为已知索引不包含任何重复值,所以某些类型的查找和计数操作比普通类型的索引更有效。对这种类型的索引的大多数查找只是为了确定某个值是否存在。索引中的值的数量与表中的行数相同,或者至少与关联列中具有非空值的行数相同。

改变缓冲优化不适用于惟一索引。作为一种变通方法,您可以临时设置unique_checks = 0在执行批量数据加载到InnoDB表格

另请参阅基数改变缓冲唯一约束唯一键

唯一键

一组列(一个或多个),包括一个唯一索引.当你可以定义在哪里条件恰好匹配一行,并且查询可以使用关联的唯一索引,那么查找和错误处理就可以非常高效地执行。

另请参阅基数唯一约束唯一索引

V

变长类型

可变长度的数据类型。VARCHARVARBINARY,而且文本类型是变长类型。

InnoDB将长度大于或等于768字节的固定长度字段视为可存储的可变长度字段线下.例如,一个CHAR (255)如果字符集的最大字节长度大于3,列可以超过768字节utf8mb4

另请参阅线下列溢出页

受害者

事务这是自动选择的回滚当一个死锁检测到。InnoDB回滚更新行数最少的事务。

死锁检测可以禁用innodb_deadlock_detect配置选项。

另请参阅死锁死锁检测innodb_lock_wait_timeout事务

视图

一个存储的查询,当调用它时会产生一个结果集。视图充当虚表的角色。

Visual Studio

对于支持的Visual Studio版本,请参阅以下参考资料:

另请参阅连接器/ c++连接器/净

W

等待

当一个操作,如获取一个互斥锁,或门闩,不能立即完成,InnoDB暂停并再次尝试。暂停的机制非常复杂,因此该操作有自己的名称等待.单个线程使用内部的组合暂停InnoDB调度、操作系统wait ()电话,和短期自旋循环。

在具有高负载和许多事务的系统上,您可以使用来自显示INNODB状态命令或性能模式确定线程是否花费了太多的等待时间,如果是,如何改进并发性

另请参阅并发性门闩互斥锁性能模式自旋

热备份

一个备份在数据库运行时获取,但这将限制备份过程中的一些数据库操作。例如,表可能变为只读。对于繁忙的应用程序和网站,您可能更喜欢使用热备份

另请参阅备份冷备份热备份

热身

运行一个系统下的典型工作负载启动后一段时间,使缓冲池而其他的记忆区域则像正常情况下一样被填充。当MySQL服务器重新启动或承受新的工作负载时,这个过程会随着时间的推移自然发生。

通常,在运行性能测试之前,运行工作负载一段时间来预热缓冲池,以确保多次运行的结果一致;否则,在第一次运行期间,性能可能会人为地降低。

在MySQL 5.6中,您可以通过启用innodb_buffer_pool_dump_at_shutdown而且innodb_buffer_pool_load_at_startup配置选项,以在重启后将缓冲池的内容放回内存中。这些选项在MySQL 5.7中默认启用。看到缓冲池工作负载

工作负载

的组合和体积SQL以及数据库应用程序在典型或高峰使用期间执行的其他数据库操作。您可以在性能测试期间让数据库服从特定的工作负载来识别瓶颈,或进行容量规划时。

另请参阅瓶颈中央处理器受限disk-boundSQL

写相结合

一种减少写操作的优化技术脏页刷新InnoDB缓冲池.如果对页中的一行进行多次更新,或者对同一页中的多行进行更新,那么所有这些更改都将在一次写入操作中存储到数据文件中,而不是对每个更改进行一次写入操作。

另请参阅缓冲池脏页冲洗

X

XA

用于协调分布式的标准接口交易,允许多个数据库在维护时参与一个事务遵从性。详情请参见innodb_support_xa配置选项,避免了为每个事务进行额外fsync的性能开销。

从MySQL 5.7.10开始禁用innodb_support_xa不允许,因为这会导致复制不安全,并阻止与二进制日志小组提交。的innodb_support_xaMySQL 8.0中删除了configuration选项。

另请参阅二进制日志提交事务两阶段提交

Y

年轻的

的特征页面InnoDB缓冲池这意味着它最近被访问过,因此被移动到缓冲池数据结构中,因此它不是刷新过早地被LRU算法。这个术语在某些场合使用INFORMATION_SCHEMA与缓冲池相关的表的列名。

另请参阅缓冲池冲洗INFORMATION_SCHEMALRU页面