这些术语通常用于有关MySQL数据库服务器的信息中。这个术语表最初是作为关于InnoDB存储引擎的术语的参考,大多数定义都与InnoDB相关。
一个
- . arm文件
-
元数据
存档
表。与.ARZ文件.控件生成的备份中始终包含具有此扩展名的文件mysqlbackup
命令的MySQL企业备份产品。另请参阅.ARZ文件,MySQL企业备份,mysqlbackup命令.
- .ARZ文件
-
ARCHIVE表的数据。与. arm文件.控件生成的备份中始终包含具有此扩展名的文件
mysqlbackup
命令的MySQL企业备份产品。 - 酸
-
原子性、一致性、隔离性和持久性的缩写。这些属性在数据库系统中都是理想的,并且都与类的概念密切相关事务.的事务特性
InnoDB
坚持ACID的原则。事务是原子可以是功的单位承诺或回滚.当一个事务对数据库进行多个更改时,要么在事务提交时所有更改都成功,要么在事务回滚时所有更改都取消。
数据库在任何时候都保持一致的状态——在每次提交或回滚之后,以及在事务进行时。如果跨多个表更新相关数据,查询将看到所有旧值或所有新值,而不是新旧值的混合。
事务在进行时互相保护(隔离);它们不能相互干扰或查看彼此未提交的数据。实现这种隔离锁定机制。有经验的用户可以调整隔离级别,以更少的保护换取更高的性能和并发性当他们可以确定事务之间真的不会相互干扰时。
事务的结果是持久的:一旦提交操作成功,该事务所做的更改就不会受到电源故障、系统崩溃、竞争条件或许多非数据库应用程序容易遭受的其他潜在危险的影响。持久性通常涉及到写入磁盘存储,并具有一定的冗余,以防止写入操作期间出现电源故障或软件崩溃。(在
InnoDB
,doublewrite缓冲协助耐久性)。 - 自适应冲洗
-
一个算法InnoDB表,消除了I/O开销检查点.而不是冲洗所有的修改页面从缓冲池到数据文件MySQL会定期刷新一小组修改过的页面。自适应刷新算法根据刷新速率和刷新速度估计执行这些周期性刷新的最佳速率,从而扩展了该过程重做生成的信息。
- 自适应哈希索引
-
一个优化
InnoDB
可以加快查找速度的表=
而且在
运算符,通过构造一个散列索引在内存中。MySQL监视索引搜索InnoDB
表,如果查询可以从哈希索引中受益,它会为索引自动构建一个哈希索引页面经常被访问的。从某种意义上说,自适应哈希索引在运行时配置MySQL以利用充足的主内存,更接近主内存数据库的体系结构。控件控制该特性innodb_adaptive_hash_index
配置选项。因为该特性对某些工作负载有利,而对其他工作负载不利,并且用于散列索引的内存保留在缓冲池,通常应该同时启用和禁用此特性。哈希索引总是基于现有的b -树在桌子上的索引。MySQL可以在为b树定义的键的任意长度的前缀上构建散列索引,这取决于对索引的搜索模式。哈希索引可以是局部的;整个b树索引不需要缓存到缓冲池中。
在MySQL 5.6及更高版本中,利用快速单值查找的另一种方法
InnoDB
表是要用的InnoDB
memcached插件。看到b -树,缓冲池,散列索引,memcached,页面,二级索引. - ADO。网
-
一个对象关系映射(ORM)框架,用于使用。net技术构建的应用程序,例如ASP。网.这样的应用程序可以通过连接器/净组件。
另请参阅net,ASP.net,连接器/净,莫诺,Visual Studio.
- AIO
-
另请参阅异步I / O.
- ANSI
-
在ODBC,一种支持字符集和其他国际化方面的替代方法。与Unicode.连接器/ ODBC3.51是ANSI驱动程序,而Connector/ODBC 5.1是Unicode驱动程序。
- API
-
api提供对MySQL协议和MySQL资源的低级访问客户端项目。与类提供的更高级别访问相比连接器.
另请参阅C API,客户端,连接器,本机C API,Perl API,PHP API,Python API,Ruby API.
- 应用程序编程接口
- 应用
-
生成的备份时MySQL企业备份产品不包括在进行备份时发生的最新更改,更新备份文件以包括这些更改的过程称为应用的一步。的值指定
运用原木
选择的mysqlbackup
命令。在应用更改之前,我们将这些文件称为原始备份.在应用更改之后,我们将这些文件称为准备备份.更改记录在ibbackup_logfile文件;一旦apply步骤完成,这个文件就不再需要了。
另请参阅热备份,ibbackup_logfile,MySQL企业备份,准备备份,原始备份.
- ASP.net
-
用于开发基于web的应用程序的框架net技术和语言。这样的应用程序可以通过连接器/净组件。
另一种用MySQL编写服务器端网页的技术是PHP.
- 组装
- 异步I / O
-
一种I/O操作,允许在I/O完成之前进行其他处理。也被称为非阻塞I / O和缩写AIO.
InnoDB
将这种类型的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。 - 原子
-
在SQL上下文中,交易工作单元是否完全成功(何时成功承诺)或者完全没有效果(当回滚).事务的不可分割(“原子”)属性是”一个”的缩写酸.
- 原子DDL
-
一个原子DDL语句是一个组合了数据字典更新,存储引擎操作和二进制日志将与DDL操作相关的写入到单个原子事务中。事务要么完全提交,要么回滚,即使服务器在操作期间停止。在MySQL 8.0中添加了原子DDL支持。有关更多信息,请参见二进制日志,数据字典,DDL,存储引擎.
- 原子指令
- 自动递增
-
类指定的表列的属性
AUTO_INCREMENT
关键字),它自动在列中添加一个递增的值序列。它为开发人员节省了工作,在插入新行时不必产生新的惟一值。它为查询优化器提供了有用的信息,因为已知该列不是空的并且具有惟一的值。这种列的值可以在各种上下文中用作查找键,因为它们是自动生成的,所以没有理由更改它们;因此,通常将主键列指定为自动递增。
在基于语句的复制中,自动递增列可能会产生问题,因为由于时间问题,在副本上重放语句可能不会产生与源上相同的列值集。当您有一个自动递增的主键时,您只能对该设置使用基于语句的复制
innodb_autoinc_lock_mode = 1
.如果你有innodb_autoinc_lock_mode = 2
,它为插入操作提供了更高的并发性基于行的复制而不是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复制.
- 自动递增锁定
-
的便利自动递增主键涉及到一些与并发性的权衡。在最简单的情况下,如果一个事务正在向表中插入值,那么任何其他事务都必须等待自己对该表进行插入,以便第一个事务插入的行接收连续的主键值。
InnoDB
包括优化和innodb_autoinc_lock_mode
选项,以便您可以配置可预测的自动增量值序列和最大值之间的最佳平衡并发性对于插入操作。 - 自动提交
-
导致提交操作后SQL声明。不建议使用此模式
InnoDB
表与交易它跨越了几个语句。它可以帮助表现只读事务在InnoDB
表,最小化开销锁定和代撤销特别是MySQL 5.6.4及以上版本。它也适合用于工作MyISAM
表,其中事务不适用。 - 可用性
-
处理主机上的故障(包括MySQL、操作系统或可能导致停机的硬件和维护活动的故障)并在必要时进行恢复的能力。通常搭配可伸缩性作为大规模部署的关键方面。
另请参阅可伸缩性.
B
- b -树
-
在数据库索引中常用的树形数据结构。该结构始终保持排序,支持对精确匹配(等于运算符)和范围(例如大于、小于和)的快速查找
之间的
运营商)。这种类型的索引可用于大多数存储引擎,例如InnoDB
而且MyISAM
.因为b -树节点可以有很多子节点,所以b -树与二叉树不同,二叉树每个节点只能有两个子节点。
与散列索引,该软件只在
内存
存储引擎。的内存
存储引擎也可以使用b -树索引,您应该选择b -树索引内存
表,如果某些查询使用范围操作符。使用术语b -树是为了参考索引设计的一般类别。MySQL存储引擎使用的b -树结构可能被视为一种变体,因为它具有经典b -树设计中不存在的复杂性。相关信息请参见
InnoDB
页面结构费尔头部分的MySQL内部手册.另请参阅散列索引.
- 引号的
-
MySQL SQL语句中的标识符必须使用反勾字符(
`
),如果它们包含特殊字符或保留字。例如,要引用一个名为FOO #酒吧
或者一个名为选择
,您可以将标识符指定为“FOO # BAR”
而且“选择”
.由于反勾提供了额外的安全级别,它们在程序生成的SQL语句中被广泛使用,在这些语句中标识符名称可能事先不知道。许多其他数据库系统使用双引号(
"
)围绕这些特殊的名字。对于可移植性,您可以启用ANSI_QUOTES
模式,并使用双引号而不是反引号限定标识符名称。另请参阅SQL.
- 备份
-
为了安全起见,从MySQL实例中复制部分或所有表数据和元数据的过程。也可指复制的文件集。这对dba来说是一项至关重要的任务。与此过程相反的是恢复操作。
MySQL,物理备份是由MySQL企业备份产品,逻辑备份是由
, mysqldump
命令。这些技术在备份数据的大小和表示以及速度(特别是恢复操作的速度)方面具有不同的特征。备份被进一步分类为热,温暖的,或冷这取决于它们对正常数据库操作的干扰程度。(热备份的干扰最小,冷备份的干扰最大。)
- 基列
- β
-
软件产品生命周期的早期阶段,该阶段仅用于评估,通常没有明确的发布号或小于1的数字。
InnoDB
不使用beta名称,更喜欢an早期采用者可以扩展到多个点发布的阶段,导致一个遗传算法释放。 - 二进制日志
-
包含试图更改表数据的所有语句或行更改记录的文件。二进制日志的内容可以重播,以使副本处于最新状态复制场景,或者在从备份恢复表数据后使数据库更新。二进制日志记录特性可以打开或关闭,但Oracle建议如果使用复制或执行备份,则始终启用它。
方法可以检查二进制日志的内容,或在复制或恢复期间重播它mysqlbinlog命令。有关二进制日志的完整信息,请参见MySQL企业备份Product、二进制日志的文件名和文件中的当前位置都是重要的详细信息。要在复制上下文中进行备份时为源记录此信息,可以指定
——slave-info
选择。在MySQL 5.0之前,有一个类似的功能,称为更新日志。在MySQL 5.0及更高版本中,二进制日志将取代更新日志。
- binlog
-
的非正式名称二进制日志文件。例如,您可能会在电子邮件消息或论坛讨论中看到这个缩写。
另请参阅二进制日志.
- 盲目的查询扩展
-
一种特殊的全文搜索启用的
与查询扩展
条款。它执行两次搜索,其中第二次搜索的搜索短语是原始搜索短语,与第一次搜索中几个相关度最高的文档相连接。该技术主要适用于较短的搜索短语,可能只有一个单词。它可以发现文档中没有出现精确搜索词的相关匹配项。另请参阅全文搜索.
- 团
-
SQL数据类型(
TINYBLOB
,团
,MEDIUMBLOB
,LONGBLOB
)用于包含任意大小的任何类型的二进制数据的对象。用于存储文档、图像、声音文件和其他类型的信息,这些信息不容易在MySQL表中分解为行和列。在MySQL应用程序中处理blob的技术各不相同连接器而且API.MySQL连接器/ ODBC
定义了团
值作为LONGVARBINARY
.对于大型、自由形式的字符数据集合,行业术语是CLOB,用MySQL表示文本
数据类型。 - 瓶颈
-
系统的一部分,在大小或容量上受到限制,对总体吞吐量有限制作用。例如,内存区域可能比所需的要小;对单个所需资源的访问可能会阻止多个CPU核同时运行;或者等待磁盘I/O完成可能会阻止CPU满负荷运行。消除瓶颈往往会得到改善并发性.例如,拥有多重的能力
InnoDB
缓冲池当多个会话同时对缓冲池进行读写时,实例减少了争用。 - 反弹
-
一个关闭操作后立即重新启动。理想情况下,头发要比较短热身以便性能和吞吐量迅速恢复到高水平。
另请参阅关闭.
- 巴迪分配器
- 缓冲
-
临时存储器用于临时存储的存储器或磁盘区域数据被缓冲在内存中,因此可以有效地将其写入磁盘,只需少量的大型I/O操作而不是大量的小型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或更大的。当系统从多个并发会话在缓冲池中加载或查找大量数据时,使用多个缓冲池实例可以减少对管理缓冲池的数据结构的独占访问的争用。另请参阅缓冲池.
- 内置的
-
内置的
InnoDB
MySQL中的存储引擎是存储引擎的原始分布形式。与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……导入表空间
的一步。 - C
-
一种结合了可移植性、性能和对底层硬件特性的访问的编程语言,使之成为编写操作系统、驱动程序和其他类型系统软件的流行选择。许多复杂的应用程序、语言和可重用模块都以C语言编写的部分为特色,并与用其他语言编写的高级组件捆绑在一起。它的核心语法非常熟悉c++,Java,c#开发人员。
- C API
-
CAPI代码与MySQL一起分发。它包含在libmysqlclient图书馆和使C访问数据库的程序。
另请参阅API,C,libmysqlclient.
- c#
-
一种结合了强类型和面向对象特性的程序设计语言,在Microsoft中运行net框架或其开源对应版本莫诺.类创建应用程序时经常使用ASP.net框架。它的语法很熟悉C,c++而且Java开发人员。
- c++
-
一种编程语言,具有熟悉的核心语法C开发人员。提供对低级别操作的访问以提高性能,并结合高级数据类型、面向对象特性和垃圾收集。要为MySQL编写c++应用程序,需要使用连接器/ c++组件。
- 缓存
- 基数
-
表中不同值的数量列.当查询引用具有关联的指数,每列的基数影响哪种访问方法最有效。例如,对于具有唯一约束,不同值的数量等于表中的行数。如果一个表有一百万行,但是一个特定列只有10个不同的值,那么每个值(平均)出现100,000次。查询如下
SELECT c1 FROM t1 WHERE c1 = 50
的基数,数据库服务器可能以不同的方式处理查询c1
.如果列中的值分布非常不均匀,那么基数可能不是确定最佳查询计划的好方法。例如,
SELECT c1 FROM t1 WHERE c1 = x;
时可能返回1行x = 50
和一百万行的时候x = 30
.在这种情况下,您可能需要使用索引提示传递关于哪种查找方法对特定查询更有效的建议。基数也可以应用于多个列中不同值的数量,如综合指数.
- 改变缓冲
-
一种特殊的数据结构,记录对页面在二级索引.这些值可能来自SQL
插入
,更新
,或删除
语句(DML).涉及变更缓冲区的特性集统称为改变缓冲组成的插入缓冲,删除缓冲,清除缓存.索引中的相关页不在时,更改才记录在更改缓冲区中缓冲池.当相关的索引页被带入缓冲池,而相关的更改仍在更改缓冲区中时,针对该页的更改将应用于缓冲池(合并后的)使用来自更改缓冲区的数据。定期,清洗在系统基本空闲或缓慢关闭期间运行的操作,它将新的索引页写入磁盘。与立即将每个值写入磁盘相比,清除操作可以更有效地为一系列索引值写入磁盘块。
从物理上讲,更改缓冲区是系统表空间,以便索引更改在数据库重新启动时保持缓冲。更改仅应用于(合并后的)当页由于其他读操作而被带入缓冲池时。
控件控制更改缓冲区中存储的数据的种类和数量
innodb_change_buffering
而且innodb_change_buffer_max_size
配置选项。要查看关于更改缓冲区中当前数据的信息,请发出显示引擎innodb状态
命令。以前称为插入缓冲.
- 改变缓冲
-
涉及的特征的总称改变缓冲组成的插入缓冲,删除缓冲,清除缓存.由SQL语句导致的索引更改(通常可能涉及随机I/O操作)会被保留,并由后台定期执行线程.这一系列操作可以比立即将每个值写入磁盘更有效地为一系列索引值写入磁盘块。控制的
innodb_change_buffering
而且innodb_change_buffer_max_size
配置选项。 - 检查点
-
对象中缓存的数据页的更改缓冲池,这些更改被写入数据文件过了一段时间,这个过程被称为冲洗.检查点是最新更改的记录(用LSN值),这些值已成功写入数据文件。
- 校验和
-
在
InnoDB
时检测损坏的验证机制页面在一个表空间从磁盘读入InnoDB
缓冲池.控件控制该特性innodb_checksums
MySQL 5.5中的configuration选项。innodb_checksums
在MySQL 5.6.3中已弃用,取而代之的是innodb_checksum_algorithm
.的innochecksum命令通过测试指定的校验和值来帮助诊断损坏问题表空间当MySQL服务器关闭时,打开该文件。
MySQL还使用校验和进行复制。具体请参见配置选项
binlog_checksum
,master_verify_checksum
,slave_sql_verify_checksum
. - 子表
-
在一个外键关系中,子表的行指向(或指向)另一个表中具有相同特定列值的行。该表包含
外键…参考文献
条款和可选在更新
而且在删除
条款。中的相应行父表必须存在,才能在子表中创建行。子表中的值可以阻止父表上的删除或更新操作,也可以导致子表中的自动删除或更新在级联
创建外键时使用的选项。 - 干净的页面
-
一个页面在
InnoDB
缓冲池在内存中所做的所有更改也被写入(刷新)脏页. - 干净的关闭
- 客户端
-
运行在数据库服务器外部的程序,通过接口发送请求与数据库通信连接器,或者一个API通过客户端库.它可以运行在与数据库服务器相同的物理机器上,也可以运行在通过网络连接的远程机器上。它可以是一个特殊用途的数据库应用程序,也可以是像mysql命令行处理器。
- 客户端库
-
包含用于处理数据库的函数集合的文件。通过使用这些库编译程序,或者将它们安装在与应用程序相同的系统上,就可以运行数据库应用程序(称为客户端)在没有安装MySQL服务器的机器上;应用程序通过网络访问数据库。对于MySQL,您可以使用libmysqlclient从MySQL服务器本身的库。
另请参阅客户端,libmysqlclient.
- 客户端预置语句
-
一个类型的事先准备好的声明中本地管理缓存和重用,模拟的功能服务器端准备好的语句.历史上,被一些人使用连接器/ J,连接器/ ODBC,连接器/ PHP开发人员解决服务器端存储过程的问题。在现代MySQL服务器版本中,为了性能、可伸缩性和内存效率,建议使用服务器端准备语句。
- CLOB
-
SQL数据类型(
非常小的文本串
,文本
,简单
,或量变
)用于包含任意大小的任何类型的字符数据的对象。用于存储基于文本的文档,具有相关的字符集和排序顺序。在MySQL应用程序中处理clob的技术各不相同连接器而且API.MySQL连接器/ ODBC定义文本
值作为用LONGVARCHAR
.对于存储二进制数据,等效的是团类型。 - 聚集索引
-
的
InnoDB
术语主键索引。InnoDB
表存储是根据主键列的值组织的,以加快涉及主键列的查询和排序。为了获得最佳性能,请根据最关键的性能查询仔细选择主键列。因为修改聚集索引的列是一项开销很大的操作,所以选择很少或从不更新的主列。在Oracle数据库产品中,这种类型的表称为index-organized表.
- 冷备份
- 列
-
对象中的数据项行,其存储和语义由数据类型定义。每一个表格而且指数在很大程度上是由它所包含的列集定义的。
每一列都有基数价值。列可以是主键为其表,或主键的一部分。一个列可以受制于唯一约束,一个非空约束,或两者兼而有之。不同列中的值,甚至跨不同表的值,都可以通过外键的关系。
在MySQL内部操作的讨论中,有时场用作同义词。
- 列索引
- 列前缀
-
当一个指数使用长度规范创建,例如
CREATE INDEX idx ON t1 (c1(N))
,索引中只存储列值的前N个字符。保持索引前缀小可以使索引更紧凑,节省的内存和磁盘I/O有助于提高性能。(尽管将索引前缀设置得太小可能会妨碍查询优化,因为这会使具有不同值的行在查询优化器看来是重复的。)对于包含二进制值或长文本字符串的列,排序不是主要考虑因素,将整个值存储在索引中会浪费空间,索引自动使用值的前N个字符(通常是768)进行查找和排序。
另请参阅指数.
- 命令拦截器
-
的同义词声明拦截器.其中一个方面拦截器可用于两者的设计模式连接器/净而且连接器/ J.Connector/NET称为命令的东西,Connector/J称为语句。与异常拦截器.
- 提交
-
一个SQL语句结束事务,使事务所做的任何更改永久化。它的反面是回滚,它将撤消事务中所做的任何更改。
InnoDB
使用一个乐观提交机制,这样就可以在提交实际发生之前将更改写入数据文件。这种技术使提交本身更快,代价是在回滚的情况下需要更多的工作。默认情况下,MySQL使用自动提交设置,它会在每个SQL语句之后自动发出提交。
- 紧凑行格式
-
一个行格式为InnoDB表。这是从MySQL 5.0.3到MySQL 5.7.8的默认行格式。在MySQL 8.0中,默认的行格式由
innodb_default_row_format
配置选项,该选项的默认设置为动态.的紧凑的行格式为空值和变长列提供了比冗余行格式。 - 综合指数
-
另请参阅指数.
- 压缩备份
-
的压缩特性MySQL企业备份Product生成每个表空间的压缩副本,将扩展名更改为
.ibd
来.ibz
.压缩备份数据允许您保留更多的备份,并减少将备份传输到另一个服务器的时间。在恢复操作期间,数据将被解压。当压缩备份操作处理已经压缩过的表时,它会跳过该表的压缩步骤,因为再次压缩只会节省很少或根本不会节省空间。生成的一组文件MySQL企业备份产品,每个表空间被压缩。压缩文件被重命名为
.ibz
文件扩展名。应用压缩在备份过程的开始,有助于避免压缩过程中的存储开销,并避免将备份文件传输到另一个服务器时的网络开销。的过程应用的二进制日志耗时较长,并且需要解压备份文件。
- 压缩行格式
-
一个行格式它支持数据和索引压缩为
InnoDB
表。大字段的存储远离保存其余行数据的页,如动态行格式.索引页和大字段都经过压缩,从而节省了内存和磁盘。根据数据的结构,内存和磁盘使用量的减少可能超过或不超过在使用数据时解压缩数据的性能开销。看到InnoDB压缩
行格式,请参阅压缩,动态行格式,行格式. - 压缩表
- 压缩
-
使用更少的磁盘空间、执行更少的I/O和使用更少的内存进行缓存的特性带来了广泛的好处。
InnoDB
支持表级和页级压缩。InnoDB
页面压缩也称为透明页面压缩.有关InnoDB
压缩,看到压缩备份的特征MySQL企业备份产品。 - 压缩失败
-
实际上不是错误,而是使用时可能发生的昂贵操作压缩结合DML操作。它发生在:更新到压缩页面页面预留修改记录区域溢出;再次压缩页面,将所有更改应用到表数据;重新压缩的数据不适合原始页面,这要求MySQL将数据拆分为两个新页面,并分别压缩每个页面。如果需要查看该情况发生的频率,请查询
INFORMATION_SCHEMA。INNODB_CMP
表中又检查了多少值COMPRESS_OPS
的值COMPRESS_OPS_OK
列。理想情况下,压缩故障不会经常发生;当它们出现时,你可以调整innodb_compression_level
,innodb_compression_failure_threshold_pct
,innodb_compression_pad_pct_max
配置选项。 - 连接指数
-
看到综合指数.
- 并发性
-
多重操作的能力(在数据库术语中,交易)同时运行,互不干扰。并发性还涉及到性能,因为理想情况下,对多个同时事务的保护以最小的性能开销工作,使用高效的机制锁定.
- 配置文件
-
的文件选项MySQL启动时使用的值。传统上,在Linux和Unix上,这个文件被命名为
my.cnf
在Windows上它被命名为my.ini
.你可以在下面设置一些与InnoDB相关的选项(mysqld)
部分。 - 连接
-
应用程序和MySQL服务器之间的通信通道。数据库应用程序的性能和可伸缩性受以下因素的影响:建立数据库连接的速度有多快、可以同时建立多少个连接以及它们的持续时间有多长。参数如宿主,港口,等等表示为a连接字符串在连接器/净,而作为DSN在连接器/ ODBC.大流量系统使用一种称为连接池.
- 连接池
-
允许数据库的缓存区连接在同一个应用程序内或跨不同的应用程序重用,而不是为每个数据库操作建立和拆除一个新的连接。这种技术在J2EE应用程序服务器。Java应用程序使用连接器/ J的连接池特性可以使用吗Tomcat和其他应用程序服务器。重用对应用程序是透明的;应用程序仍然像往常一样打开和关闭连接。
- 连接字符串
-
数据库参数的表示形式连接,编码为字符串字面值,以便在程序代码中使用。字符串的各个部分表示连接参数,例如宿主而且港口.连接字符串包含多个键-值对,用分号分隔。每个键-值对用一个等号连接。经常使用连接器/净应用程序;看到创建连接器/NET连接字符串获取详细信息。
- 连接器
-
MySQL连接器提供到MySQL服务器的连接客户端项目。几种编程语言和框架都有自己的关联连接器。控件提供的较低级别的访问API.
- 连接器/ c++
-
Connector/ c++ 8.0可以用来访问MySQL服务器,实现一个MySQL Connector/ c++ 8.0开发指南.
- 连接器/ J
-
一个JDBC提供连接的驱动程序客户端在Java编程语言。MySQL Connector/J是JDBC Type 4驱动程序:MySQL协议的纯java实现,不依赖于MySQL客户端库.有关详细信息,请参见MySQL Connector/J 8.0开发指南.
- 连接器/净
-
MySQL连接器对于使用语言、技术和框架编写应用程序的开发人员,例如c#,net,莫诺,Visual Studio,ASP.net,ADO.net.
- 连接器/ ODBC
-
MySQL ODBC驱动程序系列,使用行业标准开放数据库连接(Open database Connectivity)提供对MySQL数据库的访问。ODBC) API。以前称为MyODBC驱动程序。有关详细信息,请参见MySQL连接器/ODBC开发人员指南.
- 连接器/ PHP
- 一致的阅读
-
使用的读操作快照信息,以显示基于某个时间点的查询结果,而不考虑同时运行的其他事务执行的更改。类的内容重构原始数据,如果查询的数据已被另一个事务更改undo日志.这种技术避免了一些锁定可以减少的问题并发性通过强制事务等待其他事务完成。
与可重复读取隔离级别例如,快照基于第一次读操作的时间。与读过承诺隔离级别时,快照将重置为每次一致性读操作的时间。
一致读是默认的读模式
InnoDB
流程选择
语句读过承诺而且可重复读取隔离级别。因为一致读不会在它所访问的表上设置任何锁,所以在对表执行一致读时,其他会话可以自由修改这些表。 - 约束
-
一种可以阻止数据库更改以防止数据不一致的自动测试。(在计算机科学术语中,一种与不变条件相关的断言。)的关键组成部分酸理念,保持数据一致性。MySQL支持的约束包括外键约束而且独特的约束.
- 计数器
-
类型增加的值
InnoDB
操作。用于测量服务器的繁忙程度,排除性能问题的根源,以及测试更改(例如,配置设置或查询使用的索引)是否具有预期的底层效果。不同种类的柜台可以通过性能模式表和INFORMATION_SCHEMA表,特别是INFORMATION_SCHEMA。INNODB_METRICS
.另请参阅INFORMATION_SCHEMA,度量计数器,性能模式.
- 覆盖索引
-
一个指数这包括查询检索到的所有列。查询没有使用索引值作为指针来查找完整的表行,而是从索引结构返回值,从而节省磁盘I/O。
InnoDB
可以将这种优化技术应用到比MyISAM更多的索引上,因为InnoDB
二级索引还包含了主键列。InnoDB
不能将此技术应用于对由事务修改的表的查询,直到该事务结束。任何列索引或综合指数如果查询正确,可以作为覆盖索引。尽可能利用这种优化技术来设计索引和查询。
- 中央处理器受限
- 崩溃
-
MySQL使用这个术语”崩溃”泛指任何意外的关闭服务器无法进行正常清理的操作。例如,数据库服务器机器或存储设备上的硬件故障可能导致崩溃;电源故障;潜在的数据不匹配导致MySQL服务器停止;一个快速关闭由DBA发起;或者其他原因。健壮的、自动崩溃恢复为InnoDBtables确保在服务器重新启动时数据保持一致,而不需要DBA做任何额外的工作。
- 崩溃恢复
-
事件之后再次启动MySQL时发生的清理活动崩溃.为InnoDB表中,未完成事务的更改将使用重做日志.的变化,承诺崩盘之前,却尚未写进数据文件,都是从doublewrite缓冲.数据库正常关闭时,将在数据库关闭期间执行此类型的活动清洗操作。
在正常运行时,提交的数据可以存储在改变缓冲在写入数据文件之前的一段时间内。在保持数据文件的最新(这会在正常操作期间带来性能开销)和缓冲数据(会使停机和崩溃恢复花费更长的时间)之间总是要进行权衡。
- CRUD
-
缩写”创建、读取、更新、删除”,数据库应用程序中常见的操作序列。通常表示一类数据库使用相对简单的应用程序(basicDDL,DML而且查询语句SQL),可以在任何语言中快速实现。
- 光标
-
表示SQL语句结果集的内部MySQL数据结构。经常使用准备好的语句而且动态SQL.它的工作原理类似于其他高级语言中的迭代器,根据请求从结果集中生成每个值。
尽管SQL通常为您处理游标的处理,但在处理性能关键代码时,您可能会深入研究其内部工作原理。
D
- 数据定义语言
-
看到DDL.
- 数据字典
-
跟踪数据库对象的元数据,例如表,索引和表列.对于MySQL 8.0中引入的MySQL数据字典,元数据物理上位于
InnoDB
file-per-table的表空间文件mysql
数据库目录。为InnoDB
数据字典,元数据物理上位于InnoDB
系统表空间.因为MySQL企业备份产品总是备份
InnoDB
系统表空间,所有备份都包含InnoDB
数据字典。 - 数据目录
-
每个MySQL的目录实例使数据文件为
InnoDB
和表示各个数据库的目录。控制的datadir
配置选项。 - 数据文件
-
的
InnoDB
系统表空间,其中包含InnoDB
数据字典并且能够保存多个数据InnoDB
表,由一个或多个表表示.ibdata
数据文件。每个表一个文件的表空间,为单个表保存数据
InnoDB
表中,都用a表示.ibd
数据文件。通用表空间(在MySQL 5.7.6中引入),它可以保存多个数据
InnoDB
表也用a表示.ibd
数据文件。另请参阅数据字典,file-per-table,一般的表空间,.ibd文件,ibdata文件,指数,系统表空间,表格,表空间.
- 数据操作语言
-
看到DML.
- 数据仓库
-
主要运行大型数据库系统或应用程序查询.只读或以读为主的数据可以组织在规范化的表单以提高查询效率。可以从的优化中受益只读事务在MySQL 5.6及更高版本。与OLTP.
- 数据库
-
在MySQL数据目录,每个数据库由一个单独的目录表示。InnoDB的系统表空间,它可以在MySQL中保存来自多个数据库的表数据实例,被保存在数据文件它们驻留在各个数据库目录之外。当file-per-table模式已启用,则.ibd文件表示单独的InnoDB表存储在数据库目录中,除非在其他地方使用
数据目录
条款。在MySQL 5.7.6中引入的通用表空间也用于保存表数据.ibd文件.不像file-per-table.ibd文件,一般表空间.ibd文件可以保存表数据从多个数据库在一个MySQL实例,并可以分配到相对于MySQL数据目录或独立于MySQL数据目录的目录。对于MySQL的长期用户来说,数据库是一个熟悉的概念。来自Oracle数据库背景的用户可能会发现MySQL数据库的含义更接近于Oracle数据库所称的模式.
- DCL
- DDEX提供者
-
允许您使用其中的数据设计工具的功能Visual Studio来操作MySQL数据库中的模式和对象。MySQL应用程序使用连接器/净, MySQL Visual Studio Plugin作为MySQL 5.0及更高版本的DDEX提供程序。
另请参阅Visual Studio.
- DDL
-
数据定义语言,一套SQL语句,用于操作数据库本身,而不是单个表行。包括所有形式的
创建
,改变
,下降
语句。还包括截断
语句,因为它和a的工作原理不同删除从
声明,尽管最终的效果是相似的。table_name
DDL语句自动提交当前的事务;他们不能回滚.
的
InnoDB
创建索引
,指数下降
,以及许多类型的ALTER TABLE
操作。看到InnoDB删除表
而且截断表
操作。与DML而且DCL.
- 死锁
-
一种不同的情况交易都无法继续,因为每个人都持有锁对方需要的东西。因为两个事务都在等待资源可用,所以没有一个事务会释放它所持有的锁。
当事务锁定多个表中的行(通过诸如
更新
或选择……更新
),但顺序相反。当这些语句锁定索引记录和的范围时,也会发生死锁差距,由于时间问题,每个事务获得一些锁,但不能获得其他锁。 - 死锁检测
-
一种自动检测何时发生故障的机制死锁发生,并自动回滚其中的一个交易(涉及受害者).方法可以禁用死锁检测
innodb_deadlock_detect
配置选项。 - 删除
-
当
InnoDB
处理删除
语句,则立即将行标记为删除,查询不再返回这些行。存储将在稍后的某个时候被回收,在称为清洗操作。对于大量数据的删除,相关操作具有各自的性能特点截断而且下降. - 删除缓冲
-
将更改存储到二级索引页的技术
删除
操作,在改变缓冲而不是立即写入更改,这样就可以执行物理写入以最小化随机I/O。(因为删除操作是一个两步的过程,该操作缓冲了通常标记要删除的索引记录的写操作。)这是一种改变缓冲;其余的是插入缓冲而且清除缓存. - 规范化的
-
一种跨不同表复制数据的数据存储策略,而不是将表与外键而且加入查询。通常用在数据仓库应用程序,其中数据在加载后不更新。在这样的应用程序中,查询性能比在更新期间维护一致数据更重要。与归一化.
- 降序索引
-
一个类型的指数在哪里对索引存储进行了优化处理
命令
条款。列
DESC另请参阅指数.
- 字典对象缓存
-
字典对象缓存存储以前访问过的内容数据字典对象,以实现对象重用和最小化磁盘I/O。一个LRU基于的驱逐策略用于从内存中驱逐最近最少使用的对象。缓存由几个存储不同对象类型的分区组成。
- 脏页
- 脏读
-
检索不可靠数据的操作,即已由另一个事务更新但尚未更新的数据承诺.只有用隔离级别被称为读未提交.
这种操作是不坚持的酸数据库设计原则。它被认为是非常危险的,因为数据可能是回滚,或在提交前进一步更新;然后,执行脏读的事务将使用从未被确认为准确的数据。
它的对面是一致的阅读,在那里
InnoDB
确保一个事务不读取由另一个事务更新的信息,即使另一个事务在此期间提交。 - 基于磁盘的
-
一种数据库,主要在磁盘存储(硬盘驱动器或同等设备)上组织数据。数据在磁盘和内存之间来回传输,以便对其进行操作。它是an的反义词内存数据库.虽然
InnoDB
是基于磁盘的,它还包含了他缓冲池,多个缓冲池实例,以及自适应哈希索引它允许某些类型的工作负载主要从内存工作。 - disk-bound
-
一个类型的工作负载在主瓶颈磁盘I / O。(也称为I / o密集型)。通常涉及到对磁盘的频繁写入,或随机读取超出容量的数据缓冲池.
- DML
-
数据操作语言,一套SQL语句执行
插入
,更新
,删除
操作。的选择
语句有时被认为是DML语句,因为选择……更新
形式也受到同样的考虑锁定作为插入
,更新
,删除
.的DML语句
InnoDB
表在a上下文中操作事务,所以它们的影响可能是承诺或回滚作为一个单一的单位。与DDL而且DCL.
- 文档id
-
在
InnoDB
全文搜索特性,表中的一个特殊列包含全文索引,以唯一标识与它们相关联的文档ilist价值。它的名字是FTS_DOC_ID
(大写)。列本身必须是Bigint unsigned,不是null
类型,其惟一索引名为FTS_DOC_ID_INDEX
.最好是在创建表时定义此列。如果InnoDB
创建?时必须向表添加列全文
索引,索引操作是相当昂贵的。 - doublewrite缓冲
-
InnoDB
使用名为doublewrite的文件刷新技术。在写之前页面到数据文件,InnoDB
首先将它们写入一个称为doublewrite缓冲区的存储区域。只有在写入和对doublewrite缓冲区的刷新完成后,才会写入InnoDB
将页面写入数据文件中的适当位置。如果有操作系统、存储子系统或mysqld进程崩溃在一个页面的中间写入,InnoDB
稍后是否可以在期间从doublewrite缓冲区中找到页面的良好副本崩溃恢复.尽管数据总是写入两次,但doublewrite缓冲区并不需要两倍的I/O开销或两倍的I/O操作。数据作为一个大的顺序块写入缓冲区本身
fsync ()
调用操作系统。要关闭doublewrite缓冲区,请指定该选项
innodb_doublewrite = 0
. - 下降
-
一种DDL操作,该操作通过语句删除模式对象
删除表
或指数下降
.它在内部映射到ALTER TABLE
声明。从一个InnoDB
从这个角度来看,这种操作的性能考虑包括时间数据字典锁定,以确保所有相关对象都已更新,而更新内存结构(如缓冲池.对于一个表格,下拉操作的特征与截断操作(截断表
声明)。 - DSN
-
缩写”数据库源名称”.这是编码连接信息连接器/ ODBC.看到在Windows上配置连接器/ODBC DSN全部细节。它相当于连接字符串所使用的连接器/净.
- 动态游标
-
一个类型的光标支持的ODBC它可以在再次读取行时提取新的和更改的结果。游标是否可以看到更改以及更改的速度取决于所涉及的表的类型(事务性或非事务性)和事务性表的隔离级别。必须显式启用对动态游标的支持。
- 动态行格式
-
一个
InnoDB
行格式。因为长可变长列值存储在保存行数据的页的外部,所以对于包含大型对象的行来说非常有效。由于通常不访问大字段来评估查询条件,所以它们不会被引入缓冲池从而减少I/O操作,更好地利用缓存内存。从MySQL 5.7.9开始,默认的行格式定义为
innodb_default_row_format
,默认值为动态
. - 动态SQL
-
允许您创建和执行的特性准备好的语句使用更健壮、安全和高效的方法替换参数值,而不是将语句的各个部分连接到字符串变量的简单技术。
另请参阅事先准备好的声明中.
- 动态语句
E
- 早期采用者
-
类似于β,当软件产品通常在非关键任务设置中评估性能、功能和兼容性时。
另请参阅β.
- 埃菲尔铁塔
-
一种包含许多面向对象特性的编程语言。它的一些概念是我们所熟悉的Java而且c#开发人员。开源的埃菲尔铁塔APIMySQL,请参阅API,c#,Java.
- 嵌入式
-
嵌入式MySQL服务器库(libmysqld)使它可以运行一个全功能的MySQL服务器在客户端应用程序。主要的好处是提高了嵌入式应用程序的速度和更简单的管理。
- 错误日志
- 驱逐
-
从缓存或其他临时存储区域(如
InnoDB
缓冲池.通常,但不总是,使用theLRU算法来确定要删除的项。当一个脏页是驱逐,它的内容是刷新到磁盘,以及任何脏的邻居的页面可能还会被冲走 - 异常拦截器
-
一个类型的拦截器用于跟踪、调试或增加数据库应用程序遇到的SQL错误。例如,拦截程序代码可以发出
显示警告
语句检索附加信息,并添加描述性文本,甚至更改返回给应用程序的异常的类型。因为只有在SQL语句返回错误时才调用拦截器代码,所以在正常(无错误)操作期间,它不会对应用程序造成任何性能损失。在Java应用程序使用连接器/ J,设置这种类型的拦截器涉及实现
com.mysql.jdbc.ExceptionInterceptor
接口,并添加exceptionInterceptors
财产连接字符串.在Visual Studio应用程序使用连接器/净类中继承的类,设置这种类型的拦截器需要定义一个类
BaseExceptionInterceptor
类,并将类名指定为连接字符串的一部分。另请参阅连接器/ J,连接器/净,拦截器,Java,Visual Studio.
- 独占锁
-
一种锁这就阻止了事务锁定同一行。取决于事务隔离级别,这种锁可能会阻止其他事务写入同一行,或者也可能阻止其他事务读取同一行。默认的
InnoDB
隔离级别,可重复读取,使高并发性通过允许事务读取具有排他锁的行,这种技术称为一致的阅读. - 程度上
-
一群页面在一个表空间.为默认页面大小大小为16KB,一个区段包含64页。的页面大小
InnoDB
实例可以是4KB、8KB或16KB,由innodb_page_size
配置选项。对于4KB、8KB和16KB的页面大小,区段大小总是1MB(或1048576字节)。支持32KB和64KB
InnoDB
在MySQL 5.7.6中增加了页面大小。对于32KB的页面大小,区段大小为2MB。对于64KB的页面大小,区段大小为4MB。InnoDB
等特性段,预读请求和doublewrite缓冲使用I/O操作,每次读取、写入、分配或释放一个区段的数据。
F
- .frm文件
-
包含MySQL表的元数据(如表定义)的文件。
.frm
文件在MySQL 8.0中被删除,但在早期的MySQL版本中仍然使用。在MySQL 8.0中,以前存储在.frm
文件存储在数据字典表。 - 故障转移
-
在发生故障时自动切换到备用服务器的能力。在MySQL上下文中,故障转移涉及到一个备用数据库服务器。通常支持内J2EE环境由应用程序服务器或框架。
- 快速创建索引
-
这个功能最初是在InnoDB Plugin中引入的,现在是MySQL 5.5及更高版本的一部分
InnoDB
二级索引通过避免完全重写关联表的需要。这种加速也适用于删除二级索引。因为索引维护会给许多数据传输操作增加性能开销,所以可以考虑执行以下操作
ALTER TABLE……引擎= INNODB
或插入……Select * from…
没有任何二级索引,然后创建索引。在MySQL 5.6中,这个特性变得更加通用。您可以在创建索引时对表进行读写操作,以及许多其他类型的操作
ALTER TABLE
可以在不复制表、不阻塞的情况下执行操作DML操作,或两者兼而有之。因此,在MySQL 5.6及更高版本中,这组特性被称为在线DDL而不是快速索引创建。 - 快速关闭
-
默认的关闭程序
InnoDB
,根据配置设置进行配置innodb_fast_shutdown = 1
.当然是为了节省时间冲洗操作跳过。这种类型的关闭在正常使用期间是安全的,因为刷新操作将在下次启动期间执行,使用与中的相同的机制崩溃恢复.如果数据库正在因升级或降级而关闭,请执行a缓慢关闭以确保所有相关的更改都应用于数据文件在关闭。 - 文件格式
-
另请参阅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_table,MySQL企业备份,行格式,系统表空间.
- 填充因数
-
在一个
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日志,缓冲池.当内存区域满了,系统需要释放一些空间时,就会发生刷新提交操作意味着来自事务的更改可以最终完成,或者因为一个缓慢关闭作业是指所有未完成的工作都要完成。当一次刷新所有缓冲数据不是关键时,
InnoDB
可以用一种叫做模糊检查点以刷新小批页面,以分散I/O开销。 - 刷新列表
-
一个内部
InnoDB
跟踪的数据结构脏页在缓冲池:也就是说,页面这些文件已经被更改,需要写回磁盘。此数据结构经常由InnoDB
内部mini-transactions,因此受到自身的保护互斥锁允许对缓冲池的并发访问。 - 外键
-
一种指针关系,在独立的行之间
InnoDB
表。控件中的一列上定义了外键关系父表和子表.除了支持相关信息的快速查找外,外键还有助于执行参照完整性,通过防止这些指针在插入、更新和删除数据时失效。这种强制机制是一种约束.如果关联的外键值在另一个表中不存在,则不能插入指向另一个表的行。如果删除了一行或更改了它的外键值,而另一个表中的行指向该外键值,则可以设置外键来阻止删除,使另一个表中的相应列值变为零,或自动删除另一个表中的相应行。
设计的一个阶段归一化数据库用于识别重复的数据,将该数据分离到一个新表中,并建立一个外键关系,以便可以像查询单个表一样查询多个表加入操作。
- 外键约束
-
的类型约束来维护数据库的一致性外键的关系。与其他类型的约束一样,如果数据不一致,它可以阻止插入或更新数据;在本例中,要防止的不一致是在多个表中的数据之间。另外,当一个DML操作执行,
外键
约束可能导致数据在孩子的行被删除,更改为不同的值,或设置为零,基于在级联
选项在创建外键时指定。 - 罚球
- 完全备份
- 全表扫描
-
一种需要读取表的全部内容的操作,而不是使用指数.通常在小型查找表中执行,或者在包含大型表的数据仓库情况下执行,其中聚合和分析所有可用数据。这些操作发生的频率,以及表相对于可用内存的大小,都对查询优化和管理缓冲池.
索引的目的是允许在大表中查找特定的值或值的范围,从而在实际情况下避免对整个表进行扫描。
- 全文搜索
-
MySQL特性,用于在表数据中查找单词、短语、单词的布尔组合等,比使用SQL更快、更方便、更灵活
就像
或者编写自己的应用程序级搜索算法。它使用SQL函数匹配()
而且全文索引.另请参阅全文索引.
- 全文索引
-
这种特殊的指数保存搜索索引在MySQL全文搜索机制。表示列值中的单词,省略指定为的任何单词stopwords.原来,只供
MyISAM
表。从MySQL 5.6.4开始,它还可以用于InnoDB表。 - 模糊检查点
G
- 遗传算法
-
”一般可用”即软件产品离开的阶段β并可用于销售、官方支持和生产使用。
另请参阅β.
- 广汽
-
缩写”全局程序集缓存”.用作存放图书馆的中央地方(程序集)net系统。控件在物理上由嵌套文件夹组成,将其视为单个虚拟文件夹netCLR。
- 差距
-
一个地方
InnoDB
指数可以插入新值的数据结构。当您使用语句锁定一组行时,例如选择……更新
,InnoDB
可以创建适用于间隙以及索引中的实际值的锁。例如,如果选择所有大于10的值进行更新,则间隙锁将防止另一个事务插入大于10的新值。的上确界记录而且下确界记录表示包含所有大于或小于所有当前索引值的空白。 - 锁的差距
-
一个锁在一个差距索引记录之间,或者锁定第一个索引记录之前或最后一个索引记录之后的间隙。例如,
SELECT c1 FROM t WHERE c1在10到20之间
防止其他事务将值15插入到列中t.c1
,无论列中是否已经有任何这样的值,因为范围中所有现有值之间的空白都是锁定的。与记录锁而且第二个关键锁.间隙锁是在性能和并发性,并在某些事务中使用隔离级别而不是别人。
- 通用日志
-
看到通用查询日志.
- 通用查询日志
-
一个类型的日志用于MySQL服务器处理的SQL语句的诊断和故障排除。可以存储在文件或数据库表中。您必须通过
general_log
配置选项来使用它。方法对特定连接禁用它sql_log_off
配置选项。方法记录的查询范围比慢速查询日志.不像二进制日志,用于复制,一般查询日志包含
选择
语句,并且不维护严格的顺序。有关更多信息,请参见二进制日志,日志,慢速查询日志. - 一般的表空间
-
一个共享的
InnoDB
表空间创建使用创建表空间
语法。一般表空间可以在MySQL数据目录外创建,都能够容纳多个表,并支持所有行格式的表。MySQL 5.7.6中引入了通用表空间。将表添加到通用表空间
创建表
或tbl_name
...表空间(=)tablespace_name
ALTER TABLE
语法。tbl_name
表空间(=)tablespace_name
与系统表空间而且file-per-table表空间。
有关更多信息,请参见file-per-table,系统表空间,表格,表空间.
- 生成的列
- 生成存储列
-
看到存储生成的列.
- 生成虚拟列
-
看到虚拟生成列.
- Glassfish
-
另请参阅J2EE.
- 全局临时表空间
-
另请参阅临时表空间.
- 全局事务
-
一个类型的事务参与XA操作。它由几个本身是事务性的操作组成,但所有操作要么作为一个组成功完成,要么作为一个组回滚。从本质上说,这是一种延伸酸属性”一个水平”这样多个ACID事务就可以作为具有ACID属性的全局操作的组件一起执行。
- 组织承诺
- GUID
-
缩写”全局唯一标识符”它是一个ID值,可用于跨不同数据库、语言、操作系统等关联数据。(作为使用顺序整数的替代方案,相同的值可能出现在引用不同数据的不同表、数据库等中。)较老的MySQL版本将其表示为
二进制(16)
.目前,它表示为CHAR (36)
.MySQL有UUID ()
函数返回字符格式的GUID值UUID_SHORT ()
函数以整数格式返回GUID值。因为连续的GUID值不一定是升序排序的,所以对于大型InnoDB表来说,使用GUID作为主键并不是一个有效的值。
H
- 散列索引
-
一个类型的指数用于使用相等操作符的查询,而不是使用大于或等范围操作符的查询
之间的
.它可用于内存
表。虽然哈希索引是默认的内存
表的历史原因,存储引擎也支持b -树索引,它通常是通用查询的更好选择。MySQL包含这种索引类型的变体自适应哈希索引,它是自动构造的
InnoDB
表(根据运行时条件)。 - 硬盘驱动器
-
缩写”硬盘驱动器”.指存储介质使用纺丝盘时,通常用纺丝盘进行比较和对比固态硬盘.它的性能特性会影响系统的吞吐量基于磁盘的工作负载。
- 心跳
-
一种周期性发送的消息,表示系统正常运行。在一个复制背景下,如果源停止发送这样的消息,其中一个副本可以取代它的位置。类似的技术可以在集群环境中的服务器之间使用,以确认所有服务器都在正常运行。
- 高水位线
-
表示上限的值,可以是运行时不应超过的硬限制,也可以是实际达到的最大值的记录。与最低点.
另请参阅最低点.
- 历史列表
-
的列表交易计划处理已删除标记的记录
InnoDB
清洗操作。记录在undo日志.历史列表的长度由命令报告显示引擎innodb状态
.的值innodb_max_purge_lag
配置选项,每个DML操作稍微延迟,以允许清除操作完成冲洗删除记录。也被称为清洗滞后.
- 孔冲孔
- 宿主
-
数据库服务器的网络名称,用于建立连接.常与a一起指定港口.在某些情况下,IP地址
127.0.0.1
比特殊的名字更好用本地主机
用于访问与应用程序相同服务器上的数据库。 - 热
-
一种频繁访问行、表或内部数据结构的情况,需要某种形式的锁定或互斥,从而导致性能或可伸缩性问题。
虽然”热”通常表示一种不希望出现的情况热备份是首选的备份类型。
另请参阅热备份.
- 热备份
-
在数据库运行和应用程序对其进行读写时所执行的备份。备份不仅仅是复制数据文件:它必须包括备份过程中插入或更新的任何数据;它必须排除在备份过程中删除的任何数据;它必须忽略任何未提交的更改。
的执行热备份的Oracle产品
InnoDB
特别是表,但也从表MyISAM
而其他存储引擎,则被称为MySQL企业备份.热备份过程包括两个阶段。数据文件的初始复制产生一个原始备份.的应用Step将运行备份时对数据库发生的任何更改合并在一起。应用这些更改将生成一个准备备份;只要有必要,就可以随时恢复这些文件。
我
- .ibd文件
-
的数据文件file-per-table表空间和通用表空间。File-per-table表空间
.ibd
文件包含单个表和相关的索引数据。一般的表空间.ibd
文件可能包含多个表的表和索引数据。的
.ibd
文件扩展名不适用于系统表空间,其中包含一个或多个ibdata文件.方法创建的表单文件表空间或通用表空间
数据目录=
条款,.ibd
文件位于正常数据目录之外的指定路径。当一个
.ibd
文件包含在压缩备份中MySQL企业备份产品,压缩当量是a.ibz
文件。另请参阅数据库,file-per-table,一般的表空间,ibdata文件,.ibz文件,innodb_file_per_table,MySQL企业备份,系统表空间.
- .ibz文件
-
当MySQL企业备份产品执行压缩备份,它将每个表空间方法创建的文件file-per-table设置从一个
.ibd
扩展到一个.ibz
扩展。备份期间应用的压缩不同于压缩行格式它在正常操作期间保持表数据的压缩。压缩备份操作会跳过已经采用压缩行格式的表空间的压缩步骤,因为第二次压缩会降低备份速度,但节省的空间很少或没有。
- I / o密集型
-
看到disk-bound.
- ib-file集
-
管理的文件集
InnoDB
在MySQL数据库中:系统表空间,file-per-table表空间文件,重做日志文件。取决于MySQL版本和InnoDB
配置,也可能包括一般的表空间,临时表空间,撤消表空间文件。这个术语有时用于详细讨论InnoDB
引用由管理的文件集的文件结构和格式InnoDB
在MySQL数据库中。 - ibbackup_logfile
-
创建的补充备份文件MySQL企业备份产品在热备份操作。它包含关于备份运行时发生的任何数据更改的信息。初始备份文件,包括
ibbackup_logfile
,被称为原始备份,因为在备份操作期间发生的更改尚未合并。执行完应用步骤到原始备份文件,结果文件确实包括那些最终的数据更改,并称为准备备份.在这个阶段,ibbackup_logfile
文件不再是必要的。 - ibdata文件
-
一组文件名为
ibdata1
,ibdata2
,等等,这些组成了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
时,默认行为是创建一个名为ibtmp1
在数据目录中,与ibdata1
. - ib_logfile
-
一组文件,通常命名为
ib_logfile0
而且ib_logfile1
,形成重做日志.有时也被称为日志组.这些文件记录试图更改数据的语句InnoDB
表。这些语句在崩溃后启动时自动重播,以纠正不完整事务写入的数据。此数据不能用于手动恢复;对于该类型的操作,请使用二进制日志.
- ilist
-
在一个
InnoDB
全文索引,由标记(即特定单词)的文档ID和位置信息组成的数据结构。另请参阅全文索引.
- 隐式行锁
-
另请参阅行锁.
- 内存数据库
-
在内存中维护数据的一种数据库系统,以避免磁盘I/O和磁盘块与内存区域之间的转换造成的开销。一些内存数据库牺牲了持久性(例如”D”在酸它们容易受到硬件、电源和其他类型故障的影响,因此更适合于只读操作。其他内存数据库确实使用持久性机制,例如将更改记录到磁盘或使用非易失性内存。
解决相同类型的内存密集型处理的MySQL特性包括
InnoDB
缓冲池,自适应哈希索引,只读事务优化,内存
存储引擎,MyISAM
key缓存和MySQL查询缓存。 - 增量备份
-
一个类型的热备份,由MySQL企业备份产品,它只保存自某个时间点以来更改的数据。使用完全备份和连续的增量备份可以使您在很长一段时间内重构备份数据,而不需要随时保留多个完全备份的存储开销。您可以恢复完整备份,然后依次应用每个增量备份,或者您可以通过应用每个增量备份来保持完整备份的最新状态,然后执行单个恢复操作。
更改数据的粒度在页面的水平。一个页面实际上可能包含不止一行。每个更改的页面都包含在备份中。
- 指数
-
提供快速查找功能的数据结构行的表格,通常形成树形结构(b - tree)表示一个特定值的所有值列或者一组列。
InnoDB
表总是有一个聚集索引代表主键.他们也可以有一个或多个二级索引定义在一个或多个列上。根据二级索引的结构,二级索引可分为部分,列,或复合索引。索引是一个关键的方面查询的性能。数据库架构师设计表、查询和索引,以便快速查找应用程序所需的数据。理想的数据库设计使用覆盖索引实用的;查询结果完全根据索引计算,而不读取实际的表数据。每一个外键约束还需要一个索引,以有效地检查值是否存在于父而且孩子表。
虽然b树索引是最常见的,但也使用了一种不同的数据结构散列索引,如
内存
存储引擎和InnoDB
自适应哈希索引.r - tree索引用于多维信息的空间索引。另请参阅自适应哈希索引,b -树,子表,聚集索引,列索引,综合指数,覆盖索引,外键,散列索引,父表,部分指标,主键,查询,r - tree,行,二级索引,表格.
- 索引缓存
-
用于保存令牌数据的内存区域
InnoDB
全文搜索.类的一部分的列中插入或更新数据时,它对数据进行缓冲,以最小化磁盘I/O全文索引.当索引缓存满时,令牌数据被写入磁盘。每一个InnoDB
全文
Index有自己独立的索引缓存,其大小由配置选项控制innodb_ft_cache_size
. - 指数条件下推
-
索引条件下推(ICP)是一种优化,它将部分索引条件下推
在哪里
条件下的存储引擎,如果条件的部分可以使用指数.可减少ICP的次数存储引擎必须访问基表和MySQL服务器必须访问存储引擎的次数。有关更多信息,请参见指数,存储引擎. - 索引提示
-
的扩展SQL语法索引由优化器推荐。例如,
力指数
,使用索引
,忽略指数
条款。通常用于索引列的值分布不均匀,导致不准确的情况基数估计。 - 指数的前缀
-
在一个指数这适用于多个列(称为综合指数),索引的首列或前列。引用复合索引的前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
-
一个结合了高性能的MySQL组件事务可靠性、健壮性和并发访问的能力。它体现了酸设计理念。表示为存储引擎;方法创建或修改的表
引擎= INNODB
条款。看到InnoDB是新表的默认存储引擎吗引擎= INNODB
子句不需要。InnoDB
桌子非常适合热备份.看到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_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功能,例如插入缓冲中使用的改变缓冲,自动递增列。
- 插入缓冲
-
的前名称改变缓冲.在MySQL 5.5中,添加了对二级索引页的缓冲更改的支持
删除
而且更新
操作。以前,只有变化产生于插入
操作缓冲。首选的术语是现在改变缓冲. - 插入缓冲
-
将更改存储到二级索引页的技术
插入
操作,在改变缓冲而不是立即写入更改,这样就可以执行物理写入以最小化随机I/O。这是一种改变缓冲;其余的是删除缓冲而且清除缓存.如果辅助索引是,则不使用插入缓冲独特的,因为在写出新条目之前,无法验证新值的唯一性。其他类型的更改缓冲也适用于惟一索引。
- 插入意图锁
-
一个类型的锁的差距这是由
插入
行插入之前的操作。这种类型的锁指示插入的意图,如果多个事务没有插入到同一索引间隙内的同一位置,则插入到同一索引间隙的多个事务不需要相互等待。有关更多信息,请参见锁的差距,锁,第二个关键锁. - 实例
-
一个单一的mysqld守护进程管理数据目录代表一个或多个数据库有一套表.它在开发、测试等领域很常见复制有多个实例的场景服务器机器,每个管理自己的数据目录和监听自己的端口或套接字。其中一个实例运行disk-bound工作负载,服务器可能仍然有额外的CPU和内存容量来运行额外的实例。
- 仪表
-
在源代码级别进行修改,以收集用于调优和调试的性能数据。在MySQL中,通过工具收集的数据通过SQL接口公开
INFORMATION_SCHEMA
而且PERFORMANCE_SCHEMA
数据库。另请参阅INFORMATION_SCHEMA,性能模式.
- 意图独占锁
-
看到意向锁.
- 意向锁
-
一种锁这适用于表,用于指示锁的类型事务打算在表中的行上获取。不同的事务可以在同一个表上获得不同种类的意图锁,但是第一个事务获得一个目的独家(IX)表上的锁可以防止其他事务获得表上的任何S或X锁。相反,第一次交易获得目的共享表上的(IS)锁阻止其他事务获得表上的任何X锁。两阶段流程允许按顺序解析锁请求,而不会阻塞兼容的锁和相应操作。有关此锁定机制的更多信息,请参见锁,锁定模式,锁定,事务.
- 目的共享锁
-
看到意向锁.
- 拦截器
- 内在的临时表
-
另请参阅优化器.
- 反向索引
-
一种为文档检索系统优化的数据结构,用于实现
InnoDB
全文搜索.的InnoDB
全文索引,作为倒排索引实现,它记录文档中每个单词的位置,而不是表行的位置。一个列值(作为文本字符串存储的文档)由倒排索引中的许多项表示。 - IOPS
-
缩写每秒I/O操作.这是对繁忙系统的常用测量方法OLTP应用程序。如果该值接近存储设备所能处理的最大值,则应用程序可能变成disk-bound,限制可伸缩性.
另请参阅disk-bound,OLTP,可伸缩性.
- 隔离级别
-
数据库处理的基础之一。隔离是我的缩写酸;隔离级别是一种设置,用于微调性能与结果的可靠性、一致性和可重复性之间的平衡交易正在进行更改并同时执行查询。
从最高的一致性和保护到最低的隔离级别,InnoDB支持的隔离级别是:可序列化的,可重复读取,读过承诺,读未提交.
与
InnoDB
表时,许多用户可以保持默认隔离级别(可重复读取)。专家用户可能会选择读过承诺水平,因为他们推动了可伸缩性的边界OLTP处理过程,或在数据仓库操作期间,其中微小的不一致不会影响大量数据的汇总结果。边缘的水平(可序列化的而且读未提交)将处理行为改变到极少使用的程度。
J
- J2EE
-
Java平台,企业版:Oracle的企业Java平台。博彩到10bet娱乐城它由用于企业级Java应用程序的API和运行时环境组成。有关详细信息,请参见http://www.oracle.com/technetwork/java/javaee/overview/index.html.对于MySQL应用程序,您通常使用连接器/ J用于数据库访问和应用服务器,如Tomcat或JBoss处理中间层工作,以及可选的框架,如春天.J2EE堆栈中经常提供的与数据库相关的特性包括连接池而且故障转移支持。
- Java
-
一种结合了高性能、丰富的内置特性和数据类型、面向对象机制、广泛的标准库和广泛的可重用第三方模块的编程语言。许多框架、应用程序服务器和其他技术都支持企业开发。它的大部分语法都很熟悉C而且c++开发人员。要用MySQL编写Java应用程序,需要使用JDBC司机被称为连接器/ J.
- JBoss
-
另请参阅J2EE.
- JDBC
-
缩写”Java数据库连接”,一个API对数据库的访问Java应用程序。编写MySQL应用程序的Java开发人员使用连接器/ J组件作为JDBC驱动程序。
- JNDI
-
另请参阅Java.
- 加入
-
一个查询它通过引用包含相同值的表中的列,从多个表中检索数据。理想情况下,这些列是
InnoDB
外键关系,确保参照完整性连接列是索引.通常用于节省空间和提高查询性能,方法是将重复字符串替换为数字id归一化数据设计。
K
l
- 门闩
-
一种轻型结构,用于
InnoDB
实现一个锁对于它自己的内部内存结构,通常持有一个以毫秒或微秒为单位的短暂时间。包括两者的总称互斥锁(供独家访问)和rw-locks(共享访问)。某些闩锁是焦点InnoDB
性能调优。关于锁存器使用和争用的统计信息可以通过性能模式接口。 - libmysql
-
另请参阅libmysqlclient.
- libmysqlclient
-
库文件,命名为
libmysqlclient.a
或libmysqlclient.so
,通常链接到客户端编写的程序在C.有时被非正式地称为libmysql或者是mysqlclient图书馆。另请参阅客户端,libmysql,mysqlclient.
- libmysqld
-
这嵌入式MySQL服务器库可以在一个客户端应用程序。主要的好处是提高了嵌入式应用程序的速度和更简单的管理。你与
libmysqld
图书馆而不是libmysqlclient.这三个库之间的API是相同的。另请参阅客户端,嵌入式,libmysql,libmysqlclient.
- 生命周期的拦截器
-
一个类型的拦截器支持的连接器/ J.它涉及到接口的实现
com.mysql.jdbc.ConnectionLifecycleInterceptor
. - 列表
-
的
InnoDB
缓冲池是否表示为内存列表页面.当访问新页面并进入缓冲池时,当再次访问缓冲池中的页面并将其视为较新的页面时,以及当长时间未访问的页面被视为较新的页面时,该列表将重新排序驱逐从缓冲池。缓冲池分为子列表替换政策是人们熟悉的政策的一种变体LRU技术。 - 负载平衡
-
一种通过向复制或集群配置中的不同从服务器发送查询请求来扩展只读连接的技术。与连接器/ J时,通过
com.mysql.jdbc.ReplicationDriver
类,并由configuration属性控制loadBalanceStrategy
. - 本地主机
-
另请参阅连接.
- 锁
-
对象的高级概念,它控制对资源(如表、行或内部数据结构)的访问,作为类的一部分锁定策略。对于密集的性能调优,您可以深入研究实现锁的实际结构,例如互斥锁而且门闩.
- 锁升级
-
在某些数据库系统中使用的一种操作行锁成一个单一的表锁,节省了内存空间,但减少了对表的并发访问。
InnoDB
为行锁使用节省空间的表示,因此锁不需要升级。 - 锁定模式
-
一个共享的(S)锁允许一个事务读取一行。多个事务可以同时获得同一行上的S锁。
排他(X)锁允许事务更新或删除一行。任何其他事务都不能同时获得同一行上的任何类型的锁。
意向锁应用于表,并用于指示事务打算在表中的行上获得哪种类型的锁。不同的事务可以在同一个表上获得不同种类的意图锁,但是第一个获得表上意图排他(IX)锁的事务可以阻止其他事务获得该表上的任何S或X锁。相反,第一个获得表上意图共享(IS)锁的事务阻止其他事务获得表上的任何X锁。两阶段流程允许按顺序解析锁请求,而不会阻塞兼容的锁和相应操作。
- 锁定
-
保护的制度事务从查看或更改由其他事务查询或更改的数据。的锁定策略必须平衡数据库操作的可靠性和一致性酸哲学)反对为善所需要的表现并发性.对锁定策略的微调通常涉及选择隔离级别并确保所有数据库操作对于该隔离级别都是安全可靠的。
- 读锁
-
一个
选择
语句,该语句也执行锁定操作在一个InnoDB
表格要么选择……更新
或选择……共享模式锁定
.它有可能产生一种死锁,视乎隔离级别的事务。的反义词非自读.对象中的全局表不允许只读事务.选择……为分享
替换选择……共享模式锁定
在MySQL 8.0.1,但是共享模式锁定
保持向后兼容可用。 - 日志
-
在
InnoDB
背景下,”日志”或”日志文件”通常是指重做日志所代表的ib_logfileN
文件。另一种类型的InnoDB
日志是undo日志,这是一个存储区域,保存由活动事务修改的数据副本。其他在MySQL中很重要的日志类型是错误日志(用于诊断启动和运行时问题),二进制日志(用于处理复制和执行时间点恢复)、通用查询日志(用于诊断应用程序问题)和慢速查询日志(用于诊断性能问题)。
- 日志缓冲区
-
控件中存放要写入的数据的内存区域日志文件构成了重做日志.它是由
innodb_log_buffer_size
配置选项。 - 日志文件
-
其中的一个ib_logfile
N
文件组成重做日志.对象将数据写入这些文件日志缓冲区内存区域。另请参阅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企业备份product,则可以指定一个LSN来表示从该时间点开始进行增量备份.的输出显示相应的LSNmysqlbackup命令。有了与完全备份时间对应的LSN后,可以指定该值进行后续增量备份,其输出包含下一次增量备份的另一个LSN。
米
- .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服务器通信使用
InnoDB
或NDB
表。这些到MySQL表的NoSQL接口允许应用程序获得比直接发出SQL语句更高的读写性能,并且可以简化已经合并的系统的应用程序逻辑和部署配置memcached对内存中的缓存。的memcached接口
InnoDB
表在MySQL 5.6及更高版本可用;看到memcached接口NDB
表在NDB Cluster 7.2及更高版本中可用;看到http://dev.10bet靠谱mysql.com/doc/ndbapi/en/ndbmemcache.html获取详细信息。 - 合并
-
对缓存在内存中的数据应用更改,例如将页放入缓冲池,以及记录在改变缓冲被合并到缓冲池中的页中。更新的数据最终写入表空间由冲洗机制。
- 元数据锁
-
一个类型的锁这就阻止了DDL对正在被另一个表同时使用的表的操作事务.有关详细信息,请参见在线操作,特别是在MySQL 5.6及更高版本中,都专注于减少元数据锁定的数量。目的是为了不改变表结构的DDL操作(例如
创建索引
而且指数下降
为InnoDB
表),以便在表被其他事务查询、更新等时继续执行。 - 度量计数器
-
实现的特性
INNODB_METRICS
表中INFORMATION_SCHEMA,在MySQL 5.6及更高版本。您可以查询计数和低水平的总数InnoDB
的数据组合使用结果进行性能调优性能模式.另请参阅计数器,INFORMATION_SCHEMA,性能模式.
- 中点插入策略
-
最初带来的技巧页面到
InnoDB
缓冲池不是在”最新的”在列表的末尾,但是在中间的某个地方。的设置,此点的确切位置可能有所不同innodb_old_blocks_pct
选择。其目的是只读取一次的页面,例如在全表扫描,可以在缓冲池中老化,比用严格的缓冲池更快LRU算法。有关更多信息,请参见缓冲池,全表扫描,LRU,页面. - mini-transaction
-
的内部阶段
InnoDB
处理时,在物理期间的内部数据结构级别DML操作。小事务(mtr)没有回滚;多个小事务可以在单个事务中发生事务.小事务将信息写入重做日志这是在崩溃恢复.小事务也可以发生在常规事务的上下文之外,例如在清洗后台线程处理。 - 插入的代码
-
一个
插入
声明,自动递增为一些但不是所有的新行指定值。例如,一个多值插入
是否可以在某些情况下为自动递增列指定一个值零
在其他情况下。InnoDB
为指定列值为的行生成自动递增值零
.另一个例子是插入……重复密钥更新
语句,其中可能会生成自动递增的值,但不会使用更新
而不是插入
语句。会不会造成一致性问题源而且副本服务器复制配置。可以要求调整的值innodb_autoinc_lock_mode配置选项。
另请参阅自动递增,innodb_autoinc_lock_mode,副本,复制,源.
- MM.MySQL
-
MySQL的一个较老的JDBC驱动程序连接器/ J当它与MySQL产品集成时。
另请参阅连接器/ J.
- 莫诺
- 地铁
- 多核
- 多版本并发控制
-
看到MVCC.
- 互斥锁
-
非正式的缩写”互斥变量”.互斥本身是互斥的缩写”互斥”)。底层对象
InnoDB
用于表示和强制独占访问锁到内存内部数据结构。一旦获得了锁,任何其他进程、线程等都不能获得相同的锁。与rw-locks,这InnoDB
用于表示和强制共享访问锁到内存内部数据结构。互斥锁和rw-锁统称为门闩. - MVCC
-
缩写”多版本并发控制”.这种技术允许
InnoDB
交易与某些隔离级别执行一致的阅读操作;也就是说,查询正在被其他事务更新的行,并查看更新发生之前的值。这是一个强大的增加技巧并发性,允许查询继续进行而无需等待锁由其他交易持有。这种技术在数据库领域并不通用。其他一些数据库产品和其他一些MySQL存储引擎不支持它。
- my.cnf
- my.ini
- MyODBC司机
-
另请参阅连接器/ ODBC.
- mysql
-
的mysqlprogram是MySQL数据库的命令行解释器。It过程SQL语句,以及mysql特定的命令,例如
显示表
,通过将请求传递给mysqld守护进程。 - MySQL企业备份
-
一种授权的产品热备份MySQL数据库。它在备份时提供了最大的效率和灵活性
InnoDB
表,还可以备份MyISAM
还有其他类型的表格。 - mysqlbackup命令
-
的命令行工具MySQL企业备份产品。它执行一个热备份操作
InnoDB
表,MyISAM
还有其他类型的表格。看到热备份,MySQL企业备份,热备份. - mysqlclient
-
由文件实现的库的非正式名称libmysqlclient,扩展
.一个
或所以
.另请参阅libmysqlclient.
- mysqld
-
mysqld,也被称为MySQL Server,是一个单一的多线程程序,它完成MySQL安装中的大部分工作。它不会产生额外的进程。MySQL Server管理对MySQL数据目录的访问,该目录包含数据库、表和其他信息,如日志文件和状态文件。
mysqld作为Unix守护进程或Windows服务运行,不断地等待请求并在后台执行维护工作。
- MySQLdb
-
开源软件的名字Python模块构成了MySQL的基础Python API.
另请参阅Python,Python API.
- , mysqldump
-
执行的命令逻辑备份数据库、表和表数据的某种组合。结果是复制原始模式对象、数据或两者的SQL语句。对于大量的数据,a物理备份解决方案等MySQL企业备份是更快的,尤其是恢复操作。
N
- net
-
另请参阅ADO。网,ASP.net,连接器/净,莫诺,Visual Studio.
- 本机C API
-
另请参阅libmysql.
- 自然的关键
-
索引列,通常是a主键,其中的值具有一些现实意义。通常不建议,因为:
如果该值发生了变化,则可能需要进行大量的索引维护工作来重新排序聚集索引并更新每个主键值中重复的副本二级索引.
即使看起来稳定的值也可能以难以预测的方式发生变化,从而难以在数据库中正确表示。例如,一个国家可以变成两个或几个国家,使原来的国家代码过时。或者,关于唯一值的规则可能有例外。例如,即使纳税人的id对一个人来说是唯一的,数据库也可能必须处理违反这一规则的记录,例如身份盗窃。纳税人ID和其他敏感ID号也不是理想的主键,因为它们可能需要安全、加密,或者与其他列区别对待。
因此,通常最好使用任意数值来形成合成的关键,例如使用an自动递增列。
- 邻居页面
-
任何页面在相同的程度上作为一个特定的页面。当一个页面被选择为刷新的任何邻居页脏通常也会被刷新,这是对传统硬盘的I/O优化。在MySQL 5.6及以上版本中,这种行为可以通过配置变量控制
innodb_flush_neighbors
;对于SSD驱动器,您可以关闭该设置,因为SSD驱动器在随机位置写入小批量数据时没有相同的开销。 - 第二个关键锁
- 非自读
-
一个查询它不使用
选择……更新
或选择……共享模式锁定
条款。对象中全局表允许的唯一查询类型只读事务.的反义词读锁.看到选择……为分享替换选择……共享模式锁定
在MySQL 8.0.1,但是共享模式锁定
保持向后兼容可用。 - 不可重复读
-
查询检索数据时,后面的查询在同一范围内检索数据的情况事务检索应该相同的数据,但查询返回不同的结果(在此期间由另一个提交的事务更改)。
这种行动是违反酸数据库设计原则。在事务中,数据应该是一致的,具有可预测和稳定的关系。
在不同的隔离级别方法阻止不可重复读取可串行化的阅读而且可重复读取级别,并允许一致的阅读,读未提交的水平。
- 非阻塞I / O
-
另请参阅异步I / O.
- 归一化
-
一种数据库设计策略,其中数据被分割到多个表中,重复的值被压缩到由一个ID表示的单行中,以避免存储、查询和更新冗余或冗长的值。它通常用于OLTP应用程序。
例如,一个地址可能被赋予一个唯一的ID,这样人口普查数据库就可以表示这种关系住在这个地址通过将该ID与家族的每个成员关联,而不是存储复杂值的多个副本,例如美国任何镇主街123号.
另一个例子是,虽然简单的地址簿应用程序可能会将每个电话号码作为个人姓名和地址存储在同一个表中,但电话公司数据库可能会给每个电话号码一个特殊的ID,并将号码和ID存储在单独的表中。这种规范化表示可以简化区号分离时的大规模更新。
并不总是建议规范化。主要是查询的数据,只通过完全删除和重新加载来更新,通常保存在更少、更大的表中,有重复值的冗余副本。这种数据表示称为规范化的,并且经常在数据仓库应用程序中发现。
- NoSQL
-
的一组数据访问技术的广义术语SQL语言作为读取和写入数据的主要机制。一些NoSQL技术充当键值存储,只接受单值读写;有些则放宽了限制酸方法;还有一些不需要预先计划模式.MySQL用户可以将nosql风格的处理与SQL操作相结合,以获得速度和简单性,以获得灵活性和便捷性memcachedAPI直接访问某些MySQL表。的memcached接口
InnoDB
表在MySQL 5.6及更高版本可用;看到memcached接口NDB
表在NDB Cluster 7.2及更高版本中可用;看到NDB集群的memcache API(不再支持). - 非空约束
-
一个类型的约束它指定了a列不能包含任何零值。它有助于保存参照完整性,因为数据库服务器可以识别有错误缺失值的数据。它还有助于查询优化中涉及的算术,允许优化器预测索引中该列上的条目数量。
- 零
-
的特殊价值SQL,表示没有数据。任何涉及a的算术运算或相等检验
零
价值,反过来又产生了零
结果。(因此它类似于IEEE浮点概念的NaN,”不是一个数字”)。任何汇总计算,如AVG ()
忽略了行零
值,当确定要除的行数时。唯一有效的测试零
values使用SQL习惯用法为空
或不是零
.零
价值观在其中发挥了作用指数操作,因为为了性能,数据库必须最小化跟踪丢失数据值的开销。通常情况下,零
值不存储在索引中,因为使用标准比较运算符测试索引列的查询永远无法将行与零
值。出于同样的原因,惟一索引不能阻止零
值;这些值没有在索引中表示。声明一个非空
列上的约束确保索引中没有遗漏任何行,从而实现更好的查询优化(准确计数行和估计是否使用索引)。因为主键必须能够唯一标识表中的每一行,单列主键不能包含任何
零
值,且多列主键不能包含具有的任何行零
所有列中的值。尽管Oracle数据库允许
零
值将与字符串连接,InnoDB
将此类操作的结果处理为零
.
O
- .OPT文件
-
包含数据库配置信息的文件。控件生成的备份中包含具有此扩展名的文件mysqlbackup命令的MySQL企业备份产品。
另请参阅MySQL企业备份,mysqlbackup命令.
- ODBC
-
开放数据库连接的缩写,一个行业标准API。通常用于基于windows的服务器或需要ODBC与MySQL通信的应用程序。MySQL ODBC驱动程序被调用连接器/ ODBC.
另请参阅连接器/ ODBC.
- 线下列
-
包含可变长度数据的列(如
团
而且VARCHAR
)太长了,装不下b -树页面。数据存储在溢出页.的动态对于这种存储,行格式比旧格式更有效紧凑的行格式。 - OLTP
-
缩写”联机事务处理”.一个数据库系统,或一个数据库应用程序,它运行一个具有多个交易,经常写入和读取数据,通常一次只影响少量数据。例如,航空公司预订系统或处理银行存款的应用程序。数据可能被组织在归一化形成一种平衡DML(插入/更新/删除)效率和查询效率。与数据仓库.
与它的行级锁而且事务能力,InnoDB是OLTP应用程序中MySQL表的理想存储引擎。
- 在线
-
一种不涉及数据库停机、阻塞或受限操作的操作类型。一般应用于DDL.缩短受限操作周期的操作,例如快速创建索引,已经演变成更广泛的在线DDLMySQL 5.6中的操作。
在备份上下文中,a热备份是在线操作和热备份部分是在线操作。
- 在线DDL
-
的性能、并发性和可用性改进的特性
InnoDB
表在DDL(主要是ALTER TABLE
)操作。看到ALTER TABLE
正在进行中。该操作可以在没有表拷贝的情况下执行,也可以使用特别优化的表拷贝类型执行。本地操作的DML日志空间使用情况由innodb_online_alter_log_max_size
配置选项。该特性是对的增强快速创建索引MySQL 5.5中的特性。
- 乐观
-
一种为关系数据库系统指导低级实现决策的方法。性能要求和并发性在关系数据库中,意味着操作必须快速启动或分派。一致性的要求和参照完整性意味着任何操作都可能失败:一个事务可能被回滚,一个DML操作可能违反约束,对锁的请求可能导致死锁,网络错误可能导致超时。乐观的策略是假设大多数请求或尝试都成功,因此为失败情况做的准备工作相对较少。当这个假设成立时,数据库几乎不做不必要的工作;当请求确实失败时,必须执行额外的工作来清理和撤销更改。
InnoDB
使用乐观的策略进行操作,例如锁定而且提交.例如,事务更改的数据可以在提交发生之前写入数据文件,这使得提交本身非常快,但是如果事务回滚,则需要做更多的工作来撤销更改。与乐观策略相反的是悲观一种是对系统进行优化,以处理不可靠且经常失败的操作。这种方法在数据库系统中很少见,因为要考虑选择可靠的硬件、网络和算法。
- 优化器
- 选项
-
MySQL的配置参数,可以存储在选择文件或者在命令行上传递。
为选项适用于InnoDB表中,每个选项名称都以前缀开头
innodb_
. - 选择文件
-
保存配置的文件选项MySQL实例。传统上,在Linux和Unix上,这个文件被命名为
my.cnf
在Windows上它被命名为my.ini
. - 溢出页
P
- .par文件
-
包含分区定义的文件。控件生成的备份中包含具有此扩展名的文件
mysqlbackup
命令的MySQL企业备份产品。引入本地分区支持
InnoDB
表在MySQL 5.7.6,.par
不再为分区创建文件InnoDB
表。分区MyISAM
表继续使用.par
MySQL 5.7中的文件。在MySQL 8.0中,分区支持只由InnoDB
存储引擎。因此,.par
从MySQL 8.0开始不再使用文件。另请参阅MySQL企业备份,mysqlbackup命令.
- 页面
-
表示数据量的单位
InnoDB
在磁盘之间进行任何时间的传输数据文件)和记忆缓冲池).一个页面可以包含一个或多个行,取决于每行中有多少数据。如果一行不能完全放入一页,InnoDB
设置其他指针样式的数据结构,以便将有关行的信息存储在一个页面中。在每个页面中装入更多数据的一种方法是使用压缩行格式.对于使用blob或大文本字段的表,紧凑行格式允许将这些大列与行的其他部分分开存储,减少了不引用这些列的查询的I/O开销和内存使用。
当
InnoDB
以批处理的方式读取或写入页面集,以增加I/O吞吐量程度上在一个时间。所有的
InnoDB
MySQL实例中的磁盘数据结构共享相同的数据页面大小. - 页面干净
-
一个
InnoDB
背景线程那冲脏页从缓冲池.在MySQL 5.6之前,此活动由掌握线程.控件控制页清理器线程的数量innodb_page_cleaners
配置选项,在MySQL 5.7.4中引入。 - 页面大小
-
对于MySQL 5.5以下的版本,每个版本的大小
InnoDB
页面固定为16千字节。该值表示一个平衡:大到足以容纳大多数行的数据,但又小到可以将不需要的数据传输到内存的性能开销最小化。不测试或不支持其他值。从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-bound,file-per-table,一般的表空间,实例,OLTP,页面,固态硬盘,系统表空间,表空间.
- 父表
-
桌子在一个外键控件中指向的初始列值子表.删除或更新父表中的行的结果取决于
在更新
而且在删除
子句在外键定义中。可以依次自动删除或更新子表中具有相应值的行,或者将那些列设置为零
否则手术就会被阻止。 - 部分备份
- 部分指标
- 部分信任
-
托管提供者通常使用的执行环境,其中应用程序具有某些权限,但没有其他权限。例如,应用程序可能能够通过网络访问数据库服务器,但是不能访问”沙箱”关于读取和写入本地文件。
另请参阅连接器/净.
- 性能模式
-
的
performance_schema
schema,在MySQL 5.5及以上版本中,提供了一组表,您可以通过查询这些表来获得关于MySQL服务器许多内部部件的性能特征的详细信息。看到INFORMATION_SCHEMA,门闩,互斥锁,rw-lock. - Perl
-
一种植根于Unix脚本和报表生成的编程语言。集成高性能正则表达式和文件I/O。可通过存储库(如CPAN)获得的可重用模块的大型集合。
另请参阅Perl API.
- Perl API
-
一个开源的API的MySQL应用程序Perl语言。实现通过
DBI
而且DBD:: mysql
模块。有关详细信息,请参见API,Perl. - 持续的统计数据
-
存储功能指数统计数据
InnoDB
表在磁盘上,提供更好的服务计划稳定为查询.有关更多信息,请参见指数,优化器,计划稳定,查询,表格. - 悲观
-
一种为了安全而牺牲性能或并发性的方法。如果很高比例的请求或尝试可能失败,或者失败的请求的后果很严重,那么使用这种方法是合适的。
InnoDB
使用所谓的悲观锁定战略上,要把机会降到最低死锁.在应用程序级别,您可以通过使用一开始就获取事务所需的所有锁的悲观策略来避免死锁。许多内置数据库机制使用相反的方法乐观方法。
- 幻影
-
出现在查询的结果集中,但不在较早查询的结果集中的行。例如,如果一个查询在事务,同时,在插入新行或更新行后提交另一个事务,以便与
在哪里
子句。这种情况称为幻像读取。它比一种不可重复读,因为锁定来自第一个查询结果集的所有行并不能阻止导致幻影出现的更改。
在不同的隔离级别方法阻止幻像读取可串行化的阅读级别,并允许可重复读取,一致的阅读,读未提交的水平。
- PHP
-
一种源于web应用程序的编程语言。代码通常以块的形式嵌入到网页的源代码中,当它由网页服务器传输时,输出被替换到页面中。这与CGI脚本等应用程序形成对比,后者以整个网页的形式打印输出。PHP风格的代码用于高度交互和动态的网页。现代PHP程序也可以作为命令行或GUI应用程序运行。
MySQL应用程序是使用PHP api.可重用模块可以写入C并从PHP调用。
另一种用MySQL编写服务器端网页的技术是ASP.net.
- PHP API
-
几个api可以在PHP语言:原来的MySQL API (
Mysql
MySQL的改进扩展(Mysqli
) MySQL本地驱动程序(Mysqlnd
) MySQL函数(PDO_MYSQL
),连接器/ PHP。有关详细信息,请参见MySQL和PHP. - 物理
-
一种涉及硬件相关方面的操作,如磁盘块、内存页、文件、位、磁盘读取等。通常,在专家级性能调优和问题诊断期间,物理方面非常重要。与逻辑.
- 物理备份
-
一个备份它复制实际的数据文件。例如,
mysqlbackup
命令的MySQL企业备份产品生成物理备份,因为其输出包含可直接由mysqld
服务器,导致速度更快恢复操作。与逻辑备份. - PITR
-
另请参阅时间点恢复.
- 计划稳定
- 时间点恢复
-
恢复的过程备份在特定日期和时间重新创建数据库的状态。常用的缩写”PITR”.由于指定的时间不太可能与备份的时间完全对应,因此该技术通常需要将物理备份和一个逻辑备份.例如,使用MySQL企业备份产品,则恢复在指定时间点之前进行的最后一次备份,然后从二进制日志备份时间与PITR时间之间。
- 港口
-
数据库服务器监听的TCP/IP套接字的编号,用于建立连接.常与a一起指定宿主.根据网络加密的使用情况,可能有一个端口用于未加密的通信,另一个端口用于SSL连接。
- 前缀
-
看到指数的前缀.
- 准备备份
-
生成的一组备份文件MySQL企业备份产品,经过所有阶段的应用二进制日志而且增量备份是完成了。生成的文件已经准备好了恢复.在应用步骤之前,这些文件称为原始备份.
- 事先准备好的声明中
-
提前分析以确定有效执行计划的SQL语句。它可以多次执行,而不需要每次解析和分析的开销。控件中的文字可以替换为不同的值
在哪里
子句的每一次,通过使用占位符。这种替代技术提高了安全性,防止了某些类型的SQL注入攻击。还可以减少将返回值转换和复制到程序变量的开销。虽然您可以直接通过SQL语法使用准备好的语句,但是各种连接器有操作准备好的语句的编程接口,这些api比通过SQL更高效。
- 主键
-
一组列——也就是基于这组列的索引——可以唯一地标识表中的每一行。因此,它必须是一个惟一的索引,不包含任何索引
零
值。InnoDB
要求每个表都有这样的索引(也称为聚集索引或集群指数),并根据主键的列值组织表存储。在选择主键值时,考虑使用任意值(a合成的关键)而不是依赖其他来源的值(a自然的关键).
- 过程
-
正在执行的程序的实例。操作系统在多个正在运行的进程之间切换,允许一定程度的并发性.在大多数操作系统上,进程可以包含多个线程共享资源的执行。线程之间的上下文切换比进程之间的等价切换要快。
- pseudo-record
- Pthreads
-
POSIX线程标准,它为Unix和Linux系统上的线程和锁定操作定义了一个API。在Unix和Linux系统上,
InnoDB
将此实现用于互斥锁.另请参阅互斥锁.
- 清洗
-
由一个或多个独立的后台线程(由
innodb_purge_threads
),按照定期的时间表运行。清除解析和进程undo日志页面的历史列表用于删除标记为删除的群集索引记录和次要索引记录删除
语句),不再需要MVCC或回滚.在处理完撤销日志页后,清除将从历史列表中释放撤销日志页。 - 清除缓存
-
将更改存储到二级索引页的技术
删除
操作,在改变缓冲而不是立即写入更改,这样就可以执行物理写入以最小化随机I/O。(因为删除操作是一个两步的过程,所以这个操作缓冲写操作,写操作通常会清除先前标记为删除的索引记录。)这是一种改变缓冲;其余的是插入缓冲而且删除缓冲. - 清洗滞后
-
另一个名字是
InnoDB
历史列表.有关innodb_max_purge_lag
配置选项。 - 清洗线
-
一个线程在
InnoDB
进程,专用于执行周期性的清洗操作。在MySQL 5.6及更高版本中,多个清除线程由innodb_purge_threads
配置选项。 - Python
-
一种广泛应用的编程语言,从Unix脚本到大规模应用程序。包括运行时类型、内置高级数据类型、面向对象特性和一个广泛的标准库。常用作”胶水”用其他语言编写的组件之间的语言。MySQLPython API是开源的MySQLdb模块。
另请参阅MySQLdb,Python API.
- Python API
问
- 查询
-
在SQL,从一个或多个中读取信息的操作表.根据数据的组织和查询的参数,可以通过查询来优化查找指数.如果涉及多个表,则该查询称为加入.
由于历史原因,有时会讨论语句使用的内部处理”查询”在更广泛的意义上,包括其他类型的MySQL语句,如DDL而且DML语句。
- 查询执行计划
-
优化器所做的关于如何执行的决策集查询最有效的,包括指数或要使用的索引,以及它们的顺序加入表。计划稳定涉及对给定查询一致地做出相同的选择。
- 查询日志
-
看到通用查询日志.
- 静默
-
为了减少数据库活动的数量,通常是为诸如
ALTER TABLE
,一个备份,或者一个关闭.可能需要做的事也可能不需要冲洗尽可能的,这样InnoDB不会继续执行后台I/O。在MySQL 5.6及更高版本中,语法
刷新表……用于出口
将一些数据写入磁盘InnoDB
这些表通过复制数据文件使备份这些表变得更简单。
R
- r - tree
-
一种树形数据结构,用于对多维数据(如地理坐标、矩形或多边形)进行空间索引。
另请参阅b -树.
- 突袭
-
缩写”廉价驱动器冗余阵列”.将I/O操作分散到多个驱动器可以实现更大的并发性在硬件级别上,提高了低级写操作的效率,否则这些操作将按顺序执行。
另请参阅并发性.
- 随机的潜水
-
一种快速估计列中不同值数量的技术基数).
InnoDB
从索引中随机抽样页面,并使用该数据估计不同值的数量。另请参阅基数.
- 原始备份
-
生成的初始备份文件集MySQL企业备份产品之前的变化体现在二进制日志和任何增量备份应用。在这个阶段,文件还没有准备好恢复.应用这些更改后,这些文件称为准备备份.
- 读过承诺
-
一个隔离级别使用锁定战略上,放松了一些保护之间交易,以提高工作表现。事务不能看到来自其他事务的未提交数据,但可以看到在当前事务启动后由另一个事务提交的数据。因此,事务永远不会看到任何坏数据,但它所看到的数据可能在某种程度上取决于其他事务的时间。
当具有此隔离级别的事务执行时
更新……在哪里
或删除……在哪里
操作,其他事务可能需要等待。事务可以执行选择……更新
,共享模式锁定
不让其他事务等待的操作。选择……为分享
替换选择……共享模式锁定
在MySQL 8.0.1,但是共享模式锁定
保持向后兼容可用。 - 读现象
- 读未提交
-
的隔离级别这在事务之间提供了最少的保护。查询使用锁定允许他们在通常等待另一个事务的情况下继续进行的策略。然而,这种额外的性能是以较不可靠的结果为代价的,包括已被其他事务更改且尚未提交的数据(称为脏读).要非常谨慎地使用此隔离级别,并注意,根据同时执行的其他事务的不同,结果可能不一致或不可复制。通常,具有此隔离级别的事务只执行查询,而不执行插入、更新或删除操作。
- 阅读观点
-
控件使用的内部快照MVCC的机制
InnoDB
.某些交易,取决于他们的隔离级别,查看事务(或在某些情况下,语句)启动时的数据值。使用读视图的隔离级别为可重复读取,读过承诺,读未提交. - 预读
-
一种预取一组数据的I/O请求页面(整个程度上)到缓冲池异步,以防很快需要这些页面。线性预读技术根据前一个区中页的访问模式预取一个区中的所有页。一旦缓冲池中有来自同一区段的一定数量的页,则随机预读技术将为一个区段预取所有的页。随机预读不是MySQL 5.5的一部分,而是在MySQL 5.6的控制下重新引入的
innodb_random_read_ahead
配置选项。 - 只读事务
-
一个类型的事务可以进行优化
InnoDB
通过消除一些与创建阅读观点对于每个事务。只能执行非自读查询。它可以用语法显式地开始启动事务只读
,或在一定条件下自动。看到非自读,阅读观点,事务. - 记录锁
-
一个SELECT c1 FROM t WHERE c1 = 10阻止任何其他事务插入、更新或删除值所在的行
t.c1
是10。与锁的差距而且第二个关键锁. - 重做
-
数据,以记录为单位,记录在重做日志当InnoDB表。它是在崩溃恢复修正不完整写入的数据交易.不断增长的LSN值表示通过重做日志的累计重做数据量。
- 重做日志
-
期间使用的基于磁盘的数据结构崩溃恢复,纠正写不完整的数据交易.在正常操作期间,它对更改请求进行编码
InnoDB
表数据,它由SQL语句或通过NoSQL接口的低级API调用产生。未完成更新的修改数据文件在一个意想不到的关闭是自动重播。重做日志在物理上表示为一组文件,通常命名为
ib_logfile0
而且ib_logfile1
.重做日志中的数据按照受影响的记录进行编码;这些数据统称为重做.数据在重做日志中的传递表现为不断增加的LSN价值。在MySQL 5.6.3中,重做日志的最大大小从原来的4GB提高到512GB。重做日志的磁盘布局受配置选项的影响
innodb_log_file_size
,innodb_log_group_home_dir
,(很少)innodb_log_files_in_group
.重做日志操作的性能也受到日志缓冲区,由innodb_log_buffer_size
配置选项。 - 重做日志进行归档
-
一个
InnoDB
当启用时,按顺序将重做日志记录写入归档文件,以避免潜在的数据丢失,以免备份工具在备份操作进行时无法跟上重做日志生成的速度。有关更多信息,请参见重做日志. - 冗余行格式
-
最古老的
InnoDB
行格式.在MySQL 5.0.3之前,它是惟一可用的行格式InnoDB
.从MySQL 5.0.3到MySQL 5.7.8,默认的行格式为紧凑的.从MySQL 5.7.9开始,默认的行格式是由innodb_default_row_format
配置选项,该选项的默认设置为动态.您仍然可以指定冗余行格式,以便与旧版本兼容InnoDB
表。 - 参照完整性
-
将数据始终保持在一致格式的技术酸哲学。的方法使不同表中的数据保持一致外键约束,它可以阻止更改的发生,或自动将这些更改传播到所有相关的表。相关机制包括唯一约束,以防止错误插入重复的值,以及非空约束,防止误插入空白值。
- 关系
-
现代数据库系统的一个重要方面。数据库服务器对一对一、一对多、多对一和惟一性等关系进行编码和执行。例如,一个人在地址数据库中可能有零个、一个或多个电话号码;一个电话号码可能与几个家庭成员有关。在金融数据库中,可能要求一个人只有一个纳税人ID,而且任何纳税人ID只能与一个人关联。
数据库服务器可以使用这些关系来防止插入错误数据,并找到查找信息的有效方法。例如,如果一个值被声明为唯一的,那么一旦找到第一个匹配项,服务器就可以停止搜索,并且可以拒绝插入相同值的第二个副本。
在数据库级别,这些关系通过SQL特性表示,例如列在一个表中,唯一和
非空
约束,外键,以及不同类型的连接操作。复杂的关系通常涉及多个表之间的数据分割。通常情况下,数据是如此归一化,这样一对多关系中的重复值只存储一次。在数学环境中,数据库中的关系是由集合论推导出来的。例如,
或
而且和
运营商的在哪里
子句代表联合和交集的概念。 - 相关性
-
在全文搜索特征,表示搜索字符串与数据之间的相似性的数字全文索引.例如,当您搜索单个单词时,该单词通常与它在文本中出现多次的行更相关,而不是只出现一次的行。
- 可重复读取
-
默认的隔离级别为
InnoDB
.它防止被查询的任何行被其他更改交易,从而阻止不可重复读但不是幻影读取。它使用适度严格锁定策略,以便事务中的所有查询都看到来自同一快照的数据,即事务开始时的数据。当具有此隔离级别的事务执行时
更新……在哪里
,删除……在哪里
,选择……更新
,共享模式锁定
操作,其他事务可能需要等待。选择……为分享
替换选择……共享模式锁定
在MySQL 8.0.1,但是共享模式锁定
保持向后兼容可用。 - 曲目
-
剧目是一个用于字符集的术语。字符集集合是字符集中字符的集合。看到 副本
一个数据库服务器机在一个复制从另一个服务器接收更改的拓扑源)并应用这些相同的更改。因此,它维护与源程序相同的内容,尽管它可能有些落后。
在MySQL中,副本通常用于灾难恢复,以取代发生故障的源。它们还通常用于测试软件升级和新设置,以确保数据库配置更改不会导致性能或可靠性问题。
副本通常具有很高的工作负载,因为它们处理所有的DML(写)从源转发的操作,以及用户查询。为了确保副本能够足够快地从源应用更改,它们通常具有快速I/O设备和足够的CPU和内存来在同一服务器上运行多个数据库实例。例如,源可能使用硬盘驱动器存储,而副本使用固态硬盘年代。
- 复制
-
发送更改的实践源,改为一个或多个副本,这样所有的数据库都有相同的数据。该技术有广泛的用途,例如负载平衡以获得更好的可伸缩性、灾难恢复以及测试软件升级和配置更改。更改可以通过调用的方法在数据库之间发送基于行的复制而且statement-based复制.
另请参阅副本,基于行的复制,源,statement-based复制.
- 恢复
-
将一组备份文件从MySQL企业备份产品已到位,供MySQL使用。此操作可用于修复已损坏的数据库、返回到较早的某个时间点或(在复制上下文)来建立一个新的副本.在MySQL企业备份产品,此操作由
复制回去
选择的mysqlbackup
命令。 - 回滚
-
一个SQL语句结束事务,撤销事务所做的任何更改。它的反面是提交,这将使在事务中所做的任何更改永久化。
默认情况下,MySQL使用自动提交设置,它会在每个SQL语句之后自动发出提交。在使用回滚技术之前,必须更改此设置。
- 回滚段
-
对象的存储区域undo日志.回滚段传统上驻留在系统表空间.从MySQL 5.6开始,回滚段可以驻留在撤消表空间.从MySQL 5.7开始,回滚段也被分配到全局临时表空间.
- 行
-
由一组定义的逻辑数据结构列.一组行组成A表格.在
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;这些锁阻止了对表的并发访问。 - 基于行的复制
-
的一种形式复制事件从何处传播源控件上的单个行指定如何更改副本.的所有设置都可以安全地使用
innodb_autoinc_lock_mode
选择。另请参阅自动递增锁定,innodb_autoinc_lock_mode,副本,复制,源,statement-based复制.
- 行级锁
-
的锁定机制用于InnoDB表、依赖行锁而不是表锁.多个交易可以同时修改同一个表。只有当两个事务试图修改同一行时,其中一个事务才等待另一个事务完成(并释放其行锁)。
- Ruby
-
一种强调动态类型和面向对象编程的编程语言。有些语法是熟悉的Perl开发人员。有两种流行的方法Ruby api用于开发MySQL应用程序。(本手册不包括高级Ruby框架。)
- Ruby API
-
Ruby程序员可以使用两个api开发MySQL应用程序。MySQL/Ruby API是基于libmysqlclientAPI库。Ruby/MySQL API被编写成使用本机MySQL网络协议(本机驱动程序)。有关详细信息,请参见libmysql,Ruby.
- rw-lock
-
底层对象
InnoDB
用于表示和强制共享访问锁到遵循某些规则的内存内部数据结构。与互斥锁,这InnoDB
用于表示和强制对内部内存数据结构的独占访问。互斥锁和rw-锁统称为门闩.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,性能模式.
- SDI
-
另请参阅序列化字典信息(SDI).
- 搜索索引
-
在MySQL中,全文搜索查询使用一种特殊的索引全文索引.在MySQL 5.6.4及以上版本,
InnoDB
而且MyISAM
表都支持全文
索引;以前,这些索引只能用于MyISAM
表。 - 二级索引
-
一个类型的
InnoDB
指数它表示表列的子集。一个InnoDB
表可以有零个、一个或多个二级索引。(对比聚集索引,这是每个人都需要的InnoDB
表,并存储所有表列的数据。)辅助索引可用于满足只需要索引列中的值的查询。对于更复杂的查询,可以使用它来标识表中的相关行,然后通过使用聚集索引的查找来检索这些行。
创建和删除二级索引传统上涉及大量开销,因为要复制所有数据到
InnoDB
表格的快速创建索引特性使得两创建索引
而且指数下降
语句要快得多InnoDB
二级索引。 - 段
-
部门内的部门
InnoDB
表空间.如果表空间类似于一个目录,则段类似于该目录中的文件。一个细分市场可以增长。可以创建新的段。例如,在一个file-per-table表空间中,表数据在一个段中,每个关联的索引在自己的段中。的系统表空间包含许多不同的段,因为它可以保存许多表及其关联的索引。在MySQL 8.0之前,system表空间也包含一个或多个表空间回滚段用于undo日志.
段随着数据的插入和删除而增大和缩小。当一个段需要更大的空间时,它就加长一个程度上(1兆字节)。类似地,当一个区段中的所有数据不再需要时,这个区段就会释放一个区段的空间。
- 选择性
-
数据分布的一种属性,即列中不同值的数量基数)除以表中记录的数量。高选择性意味着列值是相对唯一的,可以通过索引有效地检索。如果您(或查询优化器)可以预测在
在哪里
子句只匹配表中的一小部分(或一部分)行,而不是整个表查询如果它首先使用索引计算该测试,则往往是有效的。 - semi-consistent读
-
用于。的一种读操作
更新
语句,那是一种组合读过承诺而且一致的阅读.当一个更新
语句检查已锁定的行,InnoDB
返回最新的提交版本给MySQL,以便MySQL可以确定行是否匹配在哪里
的条件更新
.如果行匹配(必须更新),MySQL将再次读取该行,这一次InnoDB
要么锁定它,要么等待对它的锁定。这种类型的读操作只能在事务具有read COMMITTED时发生隔离级别. - 可序列化的
-
的隔离级别它使用最保守的锁定策略,以防止任何其他的交易从插入或更改事务读取的数据开始,直到事务完成为止。这样,同一个查询可以在事务中反复运行,并确保每次都检索相同的结果集。任何更改自当前事务开始以来由另一个事务提交的数据的尝试,都会导致当前事务等待。
这是SQL标准指定的默认隔离级别。在实践中,很少需要这种严格程度,因此默认隔离级别为
InnoDB
其次是最严格的,可重复读取. - 序列化字典信息(SDI)
-
从MySQL 8.0.3开始,所有版本中都包含SDI
InnoDB
临时表空间和撤销表空间文件除外的表空间文件。表空间文件中的SDI提供了元数据冗余。方法可以从表空间文件中提取字典对象元数据ibd2sdi实用程序,如果数据字典不可用。对于一个
MyISAM
表中,SDI存储在.sdi
架构目录中的元数据文件。需要一个SDI元数据文件来执行导入表
操作。另请参阅file-per-table,一般的表空间,系统表空间,表空间.
- 服务器
-
一种连续运行的程序,等待接收来自另一个程序的请求并对其采取行动客户端).因为通常整台计算机都专门用于运行一个或多个服务器程序(如数据库服务器、web服务器、应用程序服务器或这些程序的组合)服务器也可以指运行服务器软件的计算机。
- 服务器端预置语句
-
一个事先准备好的声明中由MySQL服务器管理。从历史上看,服务器端准备好的语句会导致问题连接器/ J而且连接器/ PHP开发人员有时会使用客户端准备好的语句代替。在现代MySQL服务器版本中,为了性能、可伸缩性和内存效率,建议使用服务器端准备语句。
- servlet
-
另请参阅连接器/ J.
- 会议临时表空间
- 共享锁
- 共享表空间
-
另一种说法是系统表空间或者一个一般的表空间.MySQL 5.7中引入了通用表空间。一个共享表空间中可以驻留多个表。中只能驻留一个表file-per-table表空间。
- 锋利的检查点
-
的过程冲洗磁盘上所有脏的某些部分包含重做项的缓冲池页重做日志.发生之前
InnoDB
重用日志文件的一部分;日志文件以循环的方式使用。通常发生在写密集型的情况下工作负载. - 关闭
-
停止MySQL服务器的过程。默认情况下,该进程清理InnoDB表,因此
InnoDB
可以慢关闭,但很快又启动。如果您跳过清理操作,它就是快要关闭但必须在下次重新启动期间执行清理操作。的关机模式
InnoDB
是由innodb_fast_shutdown
选择。 - 奴隶
-
看到副本.
- 慢速查询日志
-
一个类型的日志用于MySQL服务器处理的SQL语句的性能调优。日志信息以文件形式保存。您必须启用此功能才能使用它。您可以控制的类别”慢”SQL语句记录日志。有关更多信息,请参见通用查询日志,日志.
- 缓慢关闭
-
一个类型的关闭做额外的
InnoDB
完成前的冲洗操作。也被称为干净的关闭.由配置参数指定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之前,这个硬编码的值很难移动
InnoDB
MySQL实例之间的表空间文件。从MySQL 5.6开始,您可以使用移动式表空间包含语句的特性刷新表……用于出口
,ALTER TABLE……丢弃表空间
,ALTER TABLE……导入表空间
.调整空间ID的信息传递在. cfg文件你把它和表空间一起复制。看到. cfg文件,file-per-table,一般的表空间,.ibd文件,系统表空间,表空间,移动式表空间. - 稀疏文件
-
通过将表示空块的元数据写入磁盘,而不是写入实际的空空间,从而更有效地使用文件系统空间的一种文件类型。的
InnoDB
透明页面压缩特性依赖于稀疏文件支持。有关更多信息,请参见孔冲孔,透明页面压缩. - 自旋
-
一个类型的等待持续测试资源是否可用的操作。这种技术用于通常只持有很短一段时间的资源,在”繁忙的循环”而不是让线程休眠并执行上下文切换。如果资源在短时间内无法使用,则旋转循环停止,并使用另一种等待技术。
- 春天
-
一个基于java的应用程序框架,通过提供配置组件的方法来辅助应用程序设计。
另请参阅J2EE.
- SQL
-
结构化查询语言,是执行数据库操作的标准语言。通常被分为不同的类别DDL,DML,查询.MySQL包括一些附加的语句类别,例如复制.看到DDL,DML,查询,复制.
- SQLState
- 固态硬盘
-
缩写”固态驱动器”.一种与传统硬盘驱动器具有不同性能特性的存储设备(硬盘驱动器):更小的存储容量,更快的随机读取,没有移动部件,并有许多影响写性能的考虑因素。它的性能特性会影响系统的吞吐量disk-bound工作负载。
另请参阅disk-bound,硬盘驱动器.
- SSL
- 启动
-
启动MySQL服务器的过程。通常由列在关闭.
另请参阅关闭.
- 声明拦截器
-
一个类型的拦截器用于跟踪、调试或扩充数据库应用程序发出的SQL语句。有时也被称为命令拦截器.
在Java应用程序使用连接器/ J,设置这种类型的拦截器涉及实现
com.mysql.jdbc.StatementInterceptorV2
接口,并添加statementInterceptors
财产连接字符串.在Visual Studio应用程序使用连接器/净类中继承的类,设置这种类型的拦截器需要定义一个类
BaseCommandInterceptor
类,并将类名指定为连接字符串的一部分。 - statement-based复制
-
的一种形式复制SQL语句从源并在副本.需要注意设置
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
和其他存储引擎。 - 存储生成的列
-
从列定义中包含的表达式计算其值的列。在插入或更新行时计算并存储列值。存储生成的列需要存储空间,可以建立索引。
与虚拟生成列.
- 存储对象
- 存储程序
- 存储程序
- 严格模式
-
控件控制的设置的通用名称
innodb_strict_mode
选择。打开此设置将导致通常被视为警告的某些条件被视为错误。例如,与之相关的某些无效选项组合文件格式而且行格式,通常会产生警告并继续使用默认值,现在会导致创建表
操作失败。innodb_strict_mode
在MySQL 5.7中默认启用。MySQL也有严格模式。看到文件格式,innodb_strict_mode,行格式.
- 子表
-
对象的列表结构中缓冲池的不同部分表示相对较旧和相对较新的页面列表.一组参数控制这些部分的大小以及新页面和旧页面之间的分割点。
- 上确界记录
-
一个pseudo-record索引中,表示差距高于该指数的最大值。如果事务有这样的语句
选择……从…WHERE col > 10 FOR UPDATE;
,并且列中的最大值是20,它是最高记录上的一个锁,防止其他事务插入更大的值,如50、100等等。另请参阅差距,下确界记录,pseudo-record.
- 代理键
-
另请参阅合成的关键.
- 合成的关键
-
索引列,通常是a主键,其中值是任意分配的。通常使用自动递增列。通过将值视为完全任意的,您可以避免过度限制的规则和错误的应用程序假设。例如,如果一个员工被批准雇佣但从未真正加入,则表示员工编号的数字序列可能有一个间隙。或者第100名员工的雇佣日期可能比第500名员工晚,如果他们离开了公司,后来又重新加入。数值也产生较短的可预测长度的值。例如,存储数字代码的含义”路”,”大道”,”高速公路”,等等比一遍又一遍地重复这些字符串更节省空间。
也被称为代理键.与自然的关键.
- 系统表空间
-
一个或多个数据文件(ibdata文件的元数据
InnoDB
对象的存储区域改变缓冲,doublewrite缓冲.的表和索引数据InnoDB
如果表是在系统表空间中创建的,则使用file-per-table或一般的表空间.系统表空间中的数据和元数据适用于所有表空间数据库在MySQL实例.在MySQL 5.6.7之前,默认是保留所有
InnoDB
系统表空间中的表和索引,经常导致这个文件变得非常大。因为系统表空间从不收缩,所以如果加载并删除大量临时数据,就会出现存储问题。在MySQL 8.0中,默认为file-per-table模式中,每个表及其关联索引存储在单独的.ibd文件.这个默认设置使它更容易使用InnoDB
依赖于动态
而且压缩
行格式,如表压缩,高效存储线下列,以及大索引键前缀。将所有表数据保存在系统表空间中或单独保存
.ibd
文件通常对存储管理有影响。的MySQL企业备份Product可能备份一小组大文件,也可能备份许多小文件。在具有数千个表的系统上,文件系统操作要处理数千个表.ibd
文件可能导致瓶颈。InnoDB
介绍了MySQL 5.7.6中的通用表空间,它也表示为.ibd
文件。通用表空间是使用创建表空间
语法。它们可以在数据目录之外创建,能够保存多个表,并支持所有行格式的表。另请参阅改变缓冲,压缩,数据字典,数据库,doublewrite缓冲,动态行格式,file-per-table,一般的表空间,.ibd文件,ibdata文件,innodb_file_per_table,实例,MySQL企业备份,线下列,表空间,undo日志.
T
- 表格
-
每个MySQL表都与一个特定的表相关联存储引擎.InnoDB表有特殊的物理而且逻辑影响性能的特性,可伸缩性,备份、管理和应用程序开发。
在文件存储方面,一个
InnoDB
表属于以下表空间类型之一:共享
InnoDB
系统表空间,由一个或多个组成ibdata文件.一个file-per-table表空间,由个体组成.ibd文件.
一个共享的一般的表空间,由一个人组成
.ibd
文件。MySQL 5.7.6中引入了通用表空间。
.ibd
数据文件包含表和指数数据。InnoDB
在每个表文件表空间中创建的表可以使用动态或压缩行格式。这些行格式支持InnoDB
等特性压缩,高效存储线下列,以及大索引键前缀。一般表空间支持所有行格式。系统表空间支持使用冗余,紧凑的,动态行格式。的系统表空间支持动态在MySQL 5.7.6中增加了行格式。
的行一个
InnoDB
表被组织到称为索引结构的聚集索引,其中的项根据主键表的列。针对针对主键列进行筛选和排序的查询,对数据访问进行了优化,每个索引都包含每个条目的相关主键列的副本。修改任何主键列的值都是开销很大的操作。的一个重要方面InnoDB
表设计是选择一个主键,其列在最重要的查询中使用,保持主键短,值很少更改。另请参阅备份,聚集索引,紧凑行格式,压缩行格式,压缩,动态行格式,快速创建索引,file-per-table,.ibd文件,指数,线下列,主键,冗余行格式,行,系统表空间,表空间.
- 表锁
-
锁:阻止任何其他锁的锁事务从访问表。
InnoDB
通过使用诸如在线DDL,行锁而且一致的读取进行处理DML语句和查询.方法可以通过SQL创建这样的锁锁表
声明;从其他数据库系统或MySQL存储引擎迁移的步骤之一是在实际情况下删除这样的语句。 - 表扫描
-
看到全表扫描.
- 表统计信息
-
看到统计数据.
- 表类型
- 表空间
-
可以保存一个或多个数据的数据文件
InnoDB
表和相关的索引.的系统表空间包含了
InnoDB
数据字典,在MySQL 5.6之前拥有所有其他InnoDB
默认表。的
innodb_file_per_table
选项,在MySQL 5.6及更高版本中默认启用,它允许在自己的表空间中创建表。的高效存储等特性线下列、表压缩和可迁移表空间。看到InnoDB介绍了MySQL 5.7.6中的通用表空间。通用表空间是使用创建表空间
语法。它们可以在MySQL数据目录之外创建,能够保存多个表,并支持所有行格式的表。MySQL NDB Cluster还将表分组到表空间中。看到压缩行格式,数据字典,数据文件,file-per-table,一般的表空间,指数,innodb_file_per_table,系统表空间,表格.
- Tcl
-
一种起源于Unix脚本世界的编程语言。有时通过编写的代码进行扩展C,c++,或Java.对于开源的TclAPIMySQL,请参阅API.
- 临时表
-
一个表格它的数据不需要是真正永久的。例如,临时表可能用作复杂计算或转换中的中间结果的存储区域;这些中间数据在崩溃后不需要恢复。数据库产品可以采取各种捷径来提高对临时表的操作性能,比如不那么严格地将数据写入磁盘,以及采取其他措施在重新启动时保护数据。
有时,数据本身会在设定的时间自动删除,例如在事务结束或会话结束时。对于某些数据库产品,表本身也会被自动删除。
另请参阅表格.
- 临时表空间
-
InnoDB
使用两种临时表空间。会议临时表空间存储用户创建的临时表和优化器创建的内部临时表。的全局临时表空间商店回滚段用于对用户创建的临时表所做的更改。 - 文本集合
-
另请参阅全文索引.
- 线程
- Tomcat
-
一个开源的J2EE应用服务器,实现Java Servlet和JavaServer Pages编程技术。由web服务器和Java servlet容器组成。与MySQL一起使用,通常与连接器/ J.
另请参阅J2EE.
- 撕页
-
由于I/O设备配置和硬件故障的组合而可能发生的错误情况。如果数据写入的块小于
InnoDB
页面大小(默认为16KB),写操作时出现硬件故障可能导致只将页面的一部分存储到磁盘。的InnoDB
doublewrite缓冲防范这种可能性。另请参阅doublewrite缓冲.
- TPS
-
缩写”交易每秒”一种有时用于基准的测量单位。它的值取决于工作负载由特定的基准测试表示,并结合您控制的因素,如硬件容量和数据库配置。
- 事务
-
事务是工作的原子单元承诺或回滚.当一个事务对数据库进行多个更改时,要么在事务提交时所有更改都成功,要么在事务回滚时所有更改都取消。
数据库事务,由
InnoDB
,其属性统称为首字母缩略词酸,用于原子性、一致性、隔离性和持久性。 - 事务ID
- 透明页面压缩
-
在MySQL 5.7.8中添加的一个特性,它允许页级压缩
InnoDB
中的表file-per-table表空间。参数来启用页压缩压缩
属性与创建表
或ALTER TABLE
.有关更多信息,请参见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及更高版本不允许这种较慢的截断形式,如果涉及外键,则返回错误。在本例中,使用删除
语句代替。- 信任存储库
另请参阅SSL.
- 元组
一种技术术语,指一组有序的元素。它是一个抽象的概念,在数据库理论的正式讨论中使用。在数据库字段中,元组通常由表行的列表示。它们也可以由查询的结果集表示,例如,只检索表的某些列的查询,或从连接表中检索列的查询。
另请参阅光标.
- 两阶段提交
分布式数据库的一部分的操作事务下,XA规范。(有时缩写为2PC。)当多个数据库参与事务时,要么所有数据库提交更改,或者所有数据库回滚更改。
U
- 撤销
-
在整个生命周期中维护的数据事务,记录所有更改,以便在发生回滚操作。它储存在undo日志要么在系统表空间(在MySQL 5.7或更早版本中)或单独撤消表空间.从MySQL 8.0开始,undo日志默认位于undo表空间中。
- 撤销缓冲区
-
看到undo日志.
- undo日志
-
一种存储活动修改的数据副本的存储区域交易.如果另一个事务需要查看原始数据(作为对象的一部分)一致的阅读操作),则从该存储区域检索未修改的数据。
在MySQL 5.6和MySQL 5.7中,可以使用
innodb_undo_tablespaces
具有撤消日志的变量撤消表空间,该文件可放置在另一个存储设备上,例如固态硬盘.在MySQL 8.0中,undo日志位于初始化MySQL时创建的两个缺省undo表空间中,还可以使用以下命令创建其他undo表空间创建撤消表空间
语法。撤消日志被分成不同的部分插入撤销缓冲区和更新撤销缓冲区.
- undo日志部分
-
的集合undo日志.Undo日志段存在于回滚段.一个撤消日志段可能包含来自多个事务的撤消日志。一个undo日志段一次只能被一个事务使用,但是可以在事务释放后重用提交或回滚.也可以被称为”撤销段”.
- 撤消表空间
-
撤消表空间包含undo日志.撤消日志存在于undo日志部分,它们包含在回滚段.回滚段通常位于系统表空间中。从MySQL 5.6开始,回滚段可以驻留在undo表空间中。在MySQL 5.6和MySQL 5.7中,undo表空间的数量由
innodb_undo_tablespaces
配置选项。在MySQL 8.0中,在初始化MySQL实例时创建了两个默认的undo表空间,并且可以使用以下命令创建其他的undo表空间创建撤消表空间
语法。 - Unicode
-
一种以灵活和标准化的方式支持国家字符、字符集、代码页和其他国际化方面的系统。
Unicode支持是ODBC标准。连接器/ ODBC5.1是一个Unicode驱动程序,而Connector/ODBC 3.51是一个ANSI司机。
- 唯一约束
-
一种约束断言列不能包含任何重复的值。而言,关系代数,它用于指定1对1的关系。为提高检查值是否可以插入(即值在列中不存在)的效率,底层的唯一索引.
- 唯一索引
-
对象的列或列集合上的索引唯一约束.因为已知索引不包含任何重复值,所以某些类型的查找和计数操作比普通类型的索引更有效。大多数针对这种类型索引的查找只是为了确定某个值是否存在。索引中的值的数量与表中的行数相同,或者至少与相关列的具有非空值的行数相同。
改变缓冲优化不适用于唯一索引。作为一种解决方法,您可以临时设置
unique_checks = 0
在将大量数据加载到InnoDB
表格 - 唯一键
-
一组(一列或多列)唯一索引.当你可以定义一个
在哪里
条件,且查询可以使用相关联的惟一索引,则可以非常高效地执行查找和错误处理。
V
- 变长类型
-
可变长度的数据类型。
VARCHAR
,VARBINARY
,团
而且文本
类型是变长类型。InnoDB
将长度大于或等于768字节的定长字段处理为可存储的变长字段线下.例如,一个CHAR (255)
如果字符集的最大字节长度大于3,列可以超过768字节,就像与utf8mb4
. - 受害者
-
的事务这是自动选择的回滚当一个死锁检测到。
InnoDB
回滚更新行数最少的事务。死锁检测可以使用
innodb_deadlock_detect
配置选项。另请参阅死锁,死锁检测,innodb_lock_wait_timeout,事务.
- 视图
- 虚拟列
-
看到虚拟生成列.
- 虚拟生成列
-
从列定义中包含的表达式计算其值的列。列值不被存储,而是在读取行时紧接在any之后计算
之前
触发器。虚拟生成的列不占用任何存储空间。InnoDB
支持在虚拟生成的列上建立二级索引。与存储生成的列.
- 虚拟指数
-
虚索引是二级索引在一个或多个虚拟生成的列或者是虚拟生成列与常规列或存储生成列的组合。有关更多信息,请参见二级索引,存储生成的列,虚拟生成列.
- Visual Studio
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-bound,SQL.
- 写相结合
-
时减少写操作的一种优化技术脏页是刷新从
InnoDB
缓冲池.如果页面中的一行被多次更新,或者同一页面上的多行被更新,那么所有这些更改都将在一次写操作中存储到数据文件中,而不是针对每个更改进行一次写操作。
Y
- 年轻的
-
的一个特征页面在
InnoDB
缓冲池这意味着它最近被访问过,因此被移动到缓冲池数据结构中,因此它没有被访问刷新太快了LRU算法。这个术语在一些INFORMATION_SCHEMA与缓冲池相关的表的列名。另请参阅缓冲池,冲洗,INFORMATION_SCHEMA,LRU,页面.