这些术语通常用于有关MySQL数据库服务器的信息中。这个术语表最初是关于InnoDB存储引擎的术语参考,大部分的定义都与InnoDB相关。
一个
- . arm文件
-
元数据
存档
表。与.ARZ文件.控件生成的备份中总是包含具有此扩展名的文件mysqlbackup
命令的MySQL企业备份产品。另请参阅.ARZ文件,MySQL企业备份,mysqlbackup命令.
- .ARZ文件
-
存档表的数据。与. arm文件.控件生成的备份中总是包含具有此扩展名的文件
mysqlbackup
命令的MySQL企业备份产品。 - 酸
-
原子性、一致性、隔离性和持久性的缩写。这些属性在数据库系统中都是可取的,并且都与a的概念密切相关事务.的交易特性
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的支持。有关更多信息,请参见原子数据定义语句支持.
- 原子指令
- 自动递增
-
控件指定的表列的属性
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
选项,以便您可以配置可预测的自动递增值序列和最大值之间的最佳平衡并发性对于插入操作。 - 自动提交
-
一种导致提交操作后SQL声明。不建议使用该模式
InnoDB
表与交易它跨越了几个表述。它可以帮助性能只读事务在InnoDB
表,使开销最小化锁定和代撤销特别是MySQL 5.6.4及以上版本。它也适用于工作MyISAM
表,其中事务不适用。 - 可用性
-
能够处理主机上的故障,并在必要时从故障中恢复,包括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
命令。这些技术在备份数据的大小和表示以及速度(特别是恢复操作的速度)方面具有不同的特点。备份进一步分类为热,温暖的,或冷这取决于它们对正常数据库操作的干扰程度。(热备份干扰最小,冷备份干扰最大。)
- 梭鱼
-
的代码名
InnoDB
文件格式支持压缩行格式,启用InnoDB表压缩动态改进长可变长列的存储布局的行格式。的MySQL企业备份product version 3.5及以上版本支持备份使用Barracuda文件格式的表空间。
另请参阅羚羊,紧凑行格式,压缩行格式,动态行格式,文件格式,file-per-table,一般的表空间,innodb_file_format,MySQL企业备份,行格式,系统表空间.
- β
-
软件产品生命周期的早期阶段,仅用于评估,通常没有明确的发布号或小于1的发布号。
InnoDB
不使用beta命名,更喜欢早期采用者阶段可以扩展到多个点释放,导致一个遗传算法释放。 - 二进制日志
-
包含试图更改表数据的所有语句或行更改的记录的文件。二进制日志的内容可以被重放以使副本更新到最新复制场景,或者在从备份恢复表数据之后更新数据库。可以打开或关闭二进制日志记录特性,但如果您使用复制或执行备份,Oracle建议始终启用它。
可以检查二进制日志的内容,或者在复制或恢复期间重播它,使用mysqlbinlog命令。有关二进制日志的完整信息,请参见MySQL企业备份产品中,二进制日志的文件名和文件中的当前位置是重要的细节。要在复制上下文中进行备份时为源记录此信息,可以指定
——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操作,而不是进行许多小型操作。数据被缓冲在磁盘上以获得更高的可靠性,因此即使在一个崩溃或者其他失败发生在最糟糕的时间。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++组件。
- 缓存
- 基数
-
表中不同值的数目列.当查询引用具有关联的指数,每个列的基数影响哪一种访问方法最有效。例如,对于带有唯一约束,不同值的数量等于表中的行数。如果一个表有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状态
命令。前身为插入缓冲.
- 改变缓冲
-
的特性的总称改变缓冲组成的插入缓冲,删除缓冲,清除缓存.SQL语句导致的索引更改通常会涉及随机的I/O操作,这些更改会被后台保存并定期执行线程.这一系列操作可以比立即将每个索引值写入磁盘更有效地写入一系列索引值的磁盘块。控制的
innodb_change_buffering
而且innodb_change_buffer_max_size
配置选项。 - 检查点
-
控件中缓存的数据页进行更改时缓冲池,这些更改被写入数据文件一段时间后,一个过程被称为冲洗.检查点是最新更改的记录(由LSN值)已成功写入数据文件。
- 校验和
-
在
InnoDB
,用于检测损坏的验证机制页面在一个表空间从磁盘读入InnoDB
缓冲池.控件控制此特性innodb_checksums
MySQL 5.5的配置选项。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内部操作的讨论中,有时场用作同义词。
- 列索引
- 列前缀
-
当一个指数使用长度规范创建,例如
创建索引idx (c1(N))
,只有列值的前N个字符存储在索引中。保持索引前缀小可以使索引紧凑,内存和磁盘I/O节省有助于提高性能。(尽管将索引前缀设置得太小会妨碍查询优化,因为这会使具有不同值的行在查询优化器看来是重复的。)对于包含二进制值或长文本字符串的列,排序不是主要考虑因素,将整个值存储在索引中会浪费空间,索引会自动使用值的前N个字符(通常为768个)来进行查找和排序。
另请参阅指数.
- 命令拦截器
-
的同义词声明拦截器.其中一个方面拦截器两者都可用的设计模式连接器/净而且连接器/ J.Connector/NET称为命令的东西,Connector/J称为语句。与异常拦截器.
- 提交
-
一个SQL语句结束事务,使事务所做的任何更改永久存在。它是相反的回滚,它将撤消在事务中所做的任何更改。
InnoDB
使用一个乐观提交机制,以便在提交实际发生之前将更改写入数据文件。这种技术使提交本身速度更快,但在回滚时需要做更多的工作。默认情况下,MySQL使用自动提交设置,它自动在每个SQL语句之后发出一个提交。
- 紧凑行格式
-
默认的
InnoDB
行格式为InnoDB
从MySQL 5.0.3开始。的紧凑的行格式为空列和变长列提供了比之前的默认值(冗余行格式)。 - 综合指数
-
另请参阅指数.
- 压缩备份
-
压缩特性的MySQL企业备份Product生成每个表空间的压缩副本,并更改扩展名
.ibd
来.ibz
.压缩备份数据可以使您保留更多的备份,并减少将备份转移到不同服务器的时间。恢复过程中数据未压缩。当压缩备份操作处理已经压缩的表时,它会跳过该表的压缩步骤,因为再次压缩只能节省很少的空间,甚至不能节省空间。程序生成的一组文件MySQL企业备份产品,每个表空间被压缩。压缩文件被重命名为
.ibz
文件扩展名。应用压缩在备份过程的开始,有助于避免压缩过程中的存储开销,以及避免将备份文件传输到另一台服务器时的网络开销。的过程应用的二进制日志耗时较长,且需要解压备份文件。
- 压缩行格式
-
一个行格式这样就可以实现数据和索引压缩为
InnoDB
表。它是在InnoDB
插件,可作为的一部分梭鱼文件格式。较大的字段存储在保存其余行数据的页之外,如动态行格式.索引页和大字段都被压缩了,从而节省了内存和磁盘。根据数据的结构,内存和磁盘使用量的减少可能会(也可能不会)超过在使用时解压缩数据的性能开销。看到第14.9节," InnoDB表压缩"使用的细节。 - 压缩表
-
以压缩形式存储其数据的表。为
InnoDB
,它是用创建的表ROW_FORMAT =压缩
.看到第14.9节," InnoDB表压缩"为更多的信息。 - 压缩
-
使用更少的磁盘空间、执行更少的I/O和使用更少的内存进行缓存,这是一个具有广泛好处的特性。
InnoDB
在数据库操作期间,表和索引数据可以以压缩格式保存。当需要进行查询时,数据将被解压缩,当进行更改时,数据将被重新压缩DML操作。在启用表压缩后,此处理对用户和应用程序开发人员是透明的。dba可以参考
InnoDB
INFORMATION_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_pct
,innodb_compression_level
,innodb_compression_pad_pct_max
.看到第14.9节," 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和其他应用服务器。重用对应用程序是透明的;应用程序仍然像往常一样打开和关闭连接。
- 连接字符串
-
数据库参数的表示形式连接,编码为字符串字面值,以便在程序代码中使用。字符串的部分表示连接参数,例如宿主而且港口.连接字符串包含几个键-值对,用分号分隔。每个键值对使用等号连接。经常使用连接器/净应用程序;看到创建Connector/NET连接字符串获取详细信息。
- 连接器
-
MySQL连接器提供到MySQL服务器的连接客户端项目。几种编程语言和框架都有各自相关的Connector。控件提供的较低级别的访问API.
- 连接器/ 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开发者指南.
- 连接器/ J
-
一个JDBC提供连接的驱动程序客户端开发的应用程序Java编程语言。JDBC 3.0和JDBC 4.0规范有不同的兼容版本。MySQL Connector/J是JDBC Type 4驱动程序:MySQL协议的纯java实现,不依赖于MySQL客户端库.详情请参见MySQL Connector/J 5.1开发者指南.
- 连接器/净
-
MySQL连接器用于开发人员使用诸如此类的语言、技术和框架编写应用程序c#,net,莫诺,Visual Studio,ASP.net,ADO.net.
- 连接器/ ODBC
-
MySQL ODBC驱动程序家族,使用行业标准的开放数据库连接(ODBC) API。以前称为MyODBC驱动程序。详情请参见MySQL连接器/ODBC开发人员指南.
- 连接器/ PHP
- 一致的阅读
-
一种读操作,使用快照基于某个时间点显示查询结果的信息,而不考虑同时运行的其他事务执行的更改。如果查询的数据已被其他事务更改,则根据事务的内容重建原始数据undo日志.这种技术避免了一些锁定可以减少的问题并发性通过强制事务等待其他事务完成。
与可重复读取隔离级别,快照基于第一次读操作执行的时间。与读过承诺隔离级别时,快照将重置为每次一致读操作的时间。
一致性读是默认模式
InnoDB
流程选择
语句读过承诺而且可重复读取隔离级别。因为一致的读操作不会对它所访问的表设置任何锁,所以当对表执行一致的读操作时,其他会话可以自由地修改这些表。有关适用隔离级别的技术详细信息,请参见第14.7.2.3节,"一致的非锁定读取".
- 约束
-
一种自动测试,可以阻止数据库更改,以防止数据变得不一致。(用计算机科学术语来说,是一种与不变条件相关的断言。)约束是的一个关键组成部分酸理念,保持数据的一致性。MySQL支持的约束包括外键约束而且独特的约束.
- 计数器
-
以一种特定的
InnoDB
操作。这对于测量服务器的繁忙程度、排除性能问题的来源以及测试更改(例如配置设置或查询使用的索引)是否具有所需的底层效果非常有用。有不同种类的柜台可供选择性能模式表和INFORMATION_SCHEMA表,特别是INFORMATION_SCHEMA。INNODB_METRICS
.另请参阅INFORMATION_SCHEMA,度量计数器,性能模式.
- 覆盖索引
-
一个指数它包括查询检索到的所有列。查询不是使用索引值作为指针来查找完整的表行,而是从索引结构返回值,从而节省磁盘I/O。
InnoDB
可以将这种优化技术应用于比MyISAM更多的索引,因为InnoDB
二级索引还包含了主键列。InnoDB
在事务结束之前,不能对由事务修改的表应用此技术。任何列索引或综合指数可以作为覆盖索引,给定正确的查询。设计索引和查询,尽可能利用这种优化技术。
- 中央处理器受限
- 崩溃
-
MySQL使用这个术语”崩溃”泛指任何意想不到的事物关闭服务器无法进行正常清理的操作。例如,数据库服务器机器或存储设备上的硬件故障可能会导致崩溃;电源故障;潜在的数据不匹配导致MySQL服务器停止;一个快速关闭由DBA发起;或者其他很多原因。健壮的、自动崩溃恢复为InnoDB表可以确保重新启动服务器时数据保持一致,DBA无需做任何额外的工作。
- 崩溃恢复
-
之后再次启动MySQL时发生的清理活动崩溃.为InnoDB表中,不完整事务的更改将使用来自重做日志.的变化,承诺股灾之前,却还没写进数据文件,由doublewrite缓冲.当数据库正常关闭时,这种类型的活动在关闭期间由清洗操作。
在正常操作期间,提交的数据可以存储在改变缓冲在写入数据文件之前的一段时间。在保持数据文件是最新的(这会在正常操作期间带来性能开销)和对数据进行缓冲(这会使关机和崩溃恢复花费更长的时间)之间总是有一个权衡。
- CRUD
-
缩写”创建、读取、更新、删除”,数据库应用程序中常见的操作序列。通常表示一类数据库使用相对简单的应用程序(基本的DDL,DML而且查询语句SQL),可以在任何语言中快速实现。
- 光标
-
一种表示SQL语句结果集的MySQL内部数据结构。经常使用准备好的语句而且动态SQL.它的工作方式类似于其他高级语言中的迭代器,按照请求从结果集生成每个值。
虽然SQL通常会为您处理游标,但在处理性能关键的代码时,您可能会深入研究其内部工作原理。
D
- 数据定义语言
-
看到DDL.
- 数据字典
-
跟踪innodb相关对象的元数据表,索引和表列.此元数据物理上位于
InnoDB
系统表空间.由于历史原因,它在一定程度上与存储在.frm文件.因为MySQL企业备份Product总是备份系统表空间,所有备份包括数据字典的内容。
- 数据目录
-
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.
- 数据库
-
在MySQL数据目录,每个数据库由一个单独的目录表示。InnoDB的系统表空间,它可以在MySQL中保存来自多个数据库的表数据实例,保存在数据文件驻留在单个数据库目录之外的。当file-per-table模式已启用.ibd文件表示单独的InnoDB表存储在数据库目录中,除非在其他地方使用
数据目录
条款。一般的表空间,在MySQL 5.7.6中引入,也保存表数据.ibd文件.不像file-per-table.ibd文件,一般表空间.ibd文件MySQL中可以保存来自多个数据库的表数据实例,可以分配给相对于或独立于MySQL数据目录的目录。对于长期使用MySQL的用户来说,数据库是一个熟悉的概念。来自Oracle数据库背景的用户可能会发现MySQL数据库的含义更接近于Oracle数据库所称的模式.
- DCL
- 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.
- 死锁
-
不同的情况交易都无法前行,因为每一次都抱着一个锁这是另一个人需要的。因为两个事务都在等待资源变得可用,所以没有一个事务会释放它持有的锁。
当事务锁定多个表中的行时(通过语句,例如
更新
或选择……更新
),但顺序相反。当这些语句锁定索引记录的范围时,也会发生死锁差距,由于时间问题,每个事务获取一些锁,而不获取其他锁。 - 死锁检测
- 删除
-
当
InnoDB
处理删除
语句时,这些行立即标记为删除,查询不再返回这些行。存储将在稍后的定期垃圾收集期间回收清洗操作。对于大量的数据移除,相关的操作具有自身的性能特点截断而且下降. - 删除缓冲
-
将更改存储到次要索引页的技术,产生于
删除
操作,在改变缓冲而不是立即写入更改,这样就可以执行物理写入来最小化随机I/O。(因为删除操作是一个两步过程,这个操作缓冲了通常标记索引记录的写操作。)它是一种改变缓冲;其余的是插入缓冲而且清除缓存. - 规范化的
-
一种数据存储策略,在不同的表之间复制数据,而不是使用外键而且加入查询。通常用在数据仓库应用程序,其中的数据在加载后不更新。在这样的应用程序中,查询性能比在更新期间简单地维护一致的数据更为重要。与归一化.
- 降序索引
-
一个类型的指数可用于一些数据库系统,其中索引存储优化以处理
命令
条款。目前,虽然MySQL允许列
DESCDESC
关键字的创建表
语句时,它不会为生成的索引使用任何特殊的存储布局。另请参阅指数.
- 脏页
- 脏读
-
检索不可靠数据的操作,即已被另一个事务更新但尚未更新的数据承诺.这是唯一可能的隔离级别被称为读未提交.
这种操作不坚持的酸数据库设计原理。这被认为是非常危险的,因为数据可能是回滚,或在提交前进一步更新;然后,执行脏读的事务将使用从未被确认为准确的数据。
它的对面是一致的阅读,在那里
InnoDB
确保一个事务不读取另一个事务更新的信息,即使另一个事务同时提交了信息。 - 基于磁盘的
-
一种主要在磁盘存储(硬盘或同等设备)上组织数据的数据库。数据在磁盘和内存之间来回传输以供操作。它是an的反义词内存数据库.虽然
InnoDB
是基于磁盘的,它还包含他缓冲池,多个缓冲池实例,以及自适应哈希索引这允许某些类型的工作负载主要从内存中工作。 - disk-bound
-
一个类型的工作负载在主瓶颈磁盘I / O。(也称为I / o密集型)。通常涉及对磁盘的频繁写入,或随机读取超出所能容纳的数据缓冲池.
- DML
-
数据操作语言,一套SQL语句执行
插入
,更新
,删除
操作。的选择
语句有时被认为是DML语句,因为选择……更新
形式受相同的考虑锁定作为插入
,更新
,删除
.的DML语句
InnoDB
表操作在上下文中事务,所以他们的影响可以承诺或回滚作为一个整体。与DDL而且DCL.
- 文档id
-
在
InnoDB
全文搜索特性,表中包含的特殊列全文索引,以惟一地标识与每个对象关联的文档ilist价值。它的名字是FTS_DOC_ID
(大写)。列本身必须是Bigint unsigned not 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
从角度来看,此类操作的性能考虑涉及到时间数据字典是锁定的,以确保相关的对象都被更新,而时间更新的内存结构,如缓冲池.对于一个表格, drop操作与a有一些不同的特性截断操作(截断表
声明)。 - DSN
-
缩写”数据库源名称”.它是对的编码连接信息连接器/ ODBC.看到在Windows上配置Connector/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
缓冲池.通常,但不总是使用LRU算法来确定要删除的项。当一个脏页是驱逐,其内容是刷新要磁盘,和任何脏的邻居的页面也可能被冲走了 - 异常拦截器
-
一个类型的拦截器用于跟踪、调试或扩充数据库应用程序遇到的SQL错误。例如,拦截器代码可以发出
显示警告
语句来检索附加信息,并添加描述性文本,甚至更改返回给应用程序的异常的类型。因为拦截器代码只在SQL语句返回错误时调用,所以在正常(无错误)操作期间不会对应用程序造成任何性能损失。在Java应用程序使用连接器/ J,设置这种类型的拦截器涉及到实现
com.mysql.jdbc.ExceptionInterceptor
接口,并添加一个exceptionInterceptors
财产连接字符串.在Visual Studio应用程序使用连接器/净,设置这种类型的拦截器涉及定义一个继承自
BaseExceptionInterceptor
类,并将类名指定为连接字符串的一部分。另请参阅连接器/ J,连接器/净,拦截器,Java,Visual Studio.
- 独占锁
-
一种锁这就阻止了任何其他事务锁定同一行。这取决于交易隔离级别,这种锁可能会阻止其他事务写入同一行,也可能会阻止其他事务读取同一行。默认的
InnoDB
隔离级别,可重复读取,使高并发性通过允许事务读取具有独占锁的行,这种技术称为一致的阅读. - 程度上
-
一群页面在一个表空间.为默认页面大小一个区段包含64页。在MySQL 5.6中,页面大小为
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文件
-
对于备份,必须始终保留完整的
.frm
文件和备份数据,以便能够恢复备份后更改或删除的表。尽管每个
InnoDB
表有一个.frm
文件,InnoDB
控件中维护自己的表元数据系统表空间..frm
文件由MySQL企业备份产品。程序不能修改这些文件ALTER TABLE
操作,这就是为什么备份中包含非InnoDB
表执行使用读锁刷新表
在备份时冻结该活动的操作.frm
文件。恢复备份可能会导致.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
.当然是为了节省时间冲洗操作跳过。这种类型的关闭在正常使用期间是安全的,因为刷新操作在下一次启动期间执行,使用与中相同的机制崩溃恢复.在数据库因升级或降级而关闭的情况下,执行缓慢关闭而是确保将所有相关更改应用到数据文件在关闭。 - 文件格式
-
的文件格式
InnoDB
表,使用innodb_file_format
配置选项。支持的文件格式有羚羊而且梭鱼.羚羊是最原始的InnoDB
文件格式,并支持冗余而且紧凑的行格式。梭鱼是较新的InnoDB
文件格式,并支持压缩而且动态行格式。 - 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日志,缓冲池.发生刷新可能是因为内存区域已满,系统需要释放一些空间,因为a提交操作意味着可以完成事务的更改,或者因为一个缓慢关闭操作是指所有未完成的工作都要完成。当一次刷新所有缓冲数据不是很关键时,
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 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_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表来说,它不是一个有效的主键值。
H
- 散列索引
-
一个类型的指数适用于使用相等操作符的查询,而不是使用大于或等于等范围操作符
之间的
.它可用于内存
表。虽然哈希索引是默认的内存
由于历史原因,该存储引擎也支持表b -树索引,对于通用查询来说,索引通常是更好的选择。MySQL包含了这种索引类型的变体自适应哈希索引,它是自动构造的
InnoDB
表(如果需要的话),基于运行时条件。 - 硬盘驱动器
-
缩写”硬盘驱动器”.指使用旋转盘片的存储介质,通常在比较和对比时使用固态硬盘.它的性能特性可以影响a的吞吐量基于磁盘的工作负载。
- 心跳
-
一种周期性发送的消息,表明系统运行正常。在一个复制背景下,如果源停止发送这样的消息,其中之一副本可以取代它的位置。可以在集群环境中的服务器之间使用类似的技术,以确认所有服务器都正常运行。
- 高水位线
-
表示上限的值,可以是运行时不应超过的硬上限,也可以是实际达到的最大值的记录。与最低点.
另请参阅最低点.
- 历史列表
-
的列表交易对象处理的带有删除标记的记录
InnoDB
清洗操作。记录在undo日志.该命令将报告历史列表的长度查看引擎innodb状态
.如果历史记录列表的长度超过innodb_max_purge_lag
配置选项,每个DML操作稍微延迟,以使清洗操作完成冲洗删除记录。也被称为清洗滞后.
- 孔冲孔
-
从页面释放空块。的
InnoDB
透明页面压缩特点是靠冲孔支撑。有关更多信息,请参见InnoDB页面压缩. - 宿主
-
数据库服务器的网络名称,用于建立数据库连接.常与a连用港口.在某些情况下,IP地址
127.0.0.1
比特殊的名字更管用本地主机
用于访问与应用程序位于同一服务器上的数据库。 - 热
-
频繁访问行、表或内部数据结构的一种情况,需要某种形式的锁定或互斥,从而导致性能或可伸缩性问题。
虽然”热”通常表示一种不可取的情况,a热备份是首选的备份类型。
另请参阅热备份.
- 热备份
-
在数据库运行和应用程序对其进行读写时进行的备份。备份不仅仅是简单地复制数据文件:它必须包括在备份过程中插入或更新的任何数据;它必须排除在备份过程中被删除的任何数据;并且它必须忽略任何没有提交的更改。
执行热备份的Oracle产品
InnoDB
尤其是表格,还有来自MyISAM
而其他存储引擎,则被称为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
扩展。备份期间应用的压缩不同于压缩行格式在正常操作期间保持表数据的压缩。压缩备份操作会跳过对已经处于压缩行格式的表空间的压缩步骤,因为第二次压缩会减慢备份速度,但几乎不会节省空间。
- .isl文件
-
一个文件,它指定了.ibd文件对于一个
InnoDB
创建的数据目录=
在MySQL 5.6及更高版本中使用创建表空间……添加数据文件
在MySQL 5.7及更高版本中。它的功能类似于符号链接,不受实际符号链接机制的平台限制。你可以储存InnoDB
表空间外的数据库例如,在一个特别大或快速的存储设备上,取决于表的使用情况。有关详细信息,请参见一般的表空间. - 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
,则默认行为是创建一个自动扩展的12MB数据文件ibtmp1
在数据目录中,旁边ibdata1
. - ib_logfile
-
一组文件,通常命名为
ib_logfile0
而且ib_logfile1
,形成重做日志.有时也被称为日志组.这些文件记录试图更改其中数据的语句InnoDB
表。这些语句在崩溃后启动时自动重播,以纠正不完整事务写入的数据。该数据不能用于手动恢复;对于这种类型的操作,请使用二进制日志.
- ilist
-
在一个
InnoDB
全文索引,由文档ID和标记的位置信息(即特定的单词)组成的数据结构。另请参阅全文索引.
- 隐式行锁
-
另请参阅行锁.
- 内存数据库
-
在内存中维护数据的一种数据库系统,以避免由于磁盘I/O以及磁盘块和内存区域之间的转换而产生的开销。一些内存中的数据库牺牲了持久性”D”在酸设计理念),容易受到硬件、电源和其他类型故障的影响,因此它们更适合只读操作。其他内存中的数据库使用持久性机制,例如对磁盘的日志记录更改或使用非易失性内存。
MySQL处理同样类型的内存密集型处理的特性包括
InnoDB
缓冲池,自适应哈希索引,只读事务优化,内存
存储引擎,MyISAM
键缓存和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
-
一个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_format
-
的
innodb_file_format
选项定义了文件格式用于新的InnoDB
file-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功能,例如插入缓冲中使用的改变缓冲,自动递增列。
- 插入缓冲
-
以前的名字改变缓冲.在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服务器库可以运行一个功能齐全的MySQL服务器在一个客户端应用程序。它的主要好处是提高了速度,并使嵌入式应用程序的管理更加简单。你链接到
libmysqld
图书馆而不是libmysqlclient.这三个库之间的API是相同的。另请参阅客户端,嵌入式,libmysql,libmysqlclient.
- 生命周期的拦截器
-
一个类型的拦截器支持的连接器/ J.它涉及到接口的实现
com.mysql.jdbc.ConnectionLifecycleInterceptor
. - 列表
-
的
InnoDB
缓冲池表示为一个内存列表页面.当新的页面被访问并进入缓冲池时,当缓冲池中的页面被再次访问并被认为是更新的时,以及当长时间未被访问的页面被认为是更新的时,列表会被重新排序驱逐从缓冲池。缓冲池分为子列表,而替换政策是熟悉政策的一个变种LRU技术。 - 负载平衡
-
一种通过向复制或集群配置中的不同从服务器发送查询请求来扩展只读连接的技术。与连接器/ J,负载均衡通过
com.mysql.jdbc.ReplicationDriver
类,并由配置属性控制loadBalanceStrategy
. - 本地主机
-
另请参阅连接.
- 锁
-
控件中控制对资源(如表、行或内部数据结构)的访问的对象的高级概念锁定策略。对于密集的性能调优,您可以深入研究实现锁的实际结构,例如互斥锁而且门闩.
- 锁升级
-
在某些数据库系统中用于转换多个数据的一种操作行锁成一个单一的表锁,节省内存空间,但减少了对表的并发访问。
InnoDB
使用行锁的空间高效表示,以便锁不需要升级。 - 锁定模式
-
一个共享的(S)锁允许一个事务读取一行。多个事务可以同时获得同一行上的S锁。
独占(X)锁允许事务更新或删除一行。其他事务不能同时获得同一行上的任何类型的锁。
意向锁应用于表,用于指示事务打算在表中的行上获取哪种类型的锁。不同的事务可以在同一个表上获得不同类型的意图锁,但是第一个在表上获得意图排他锁(IX)的事务会阻止其他事务获取该表上的任何S或X锁。相反,第一个获取表上意图共享(IS)锁的事务会阻止其他事务获取表上的任何X锁。两阶段流程允许按顺序解析锁请求,而不会阻塞锁和兼容的相应操作。
- 锁定
-
保护…的制度事务从查看或更改正在被其他事务查询或更改的数据。的锁定策略必须平衡数据库操作的可靠性和一致性(原则)酸哲学)与良好的表现相抵触并发性.微调锁定策略通常包括选择隔离级别并确保该隔离级别的所有数据库操作都是安全可靠的。
- 读锁
-
一个
选择
语句,该语句也执行锁定操作在一个InnoDB
表格要么选择……更新
或选择……共享模式锁定
.它有可能产生死锁,视乎隔离级别的事务。a的反义词非自读.中不允许全局表只读事务.选择……为分享
替换选择……共享模式锁定
在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企业备份产品时,您可以指定LSN来表示从哪个时间点开始获取增量备份.对应的LSN通过命令的输出显示mysqlbackup命令。一旦有了与完全备份时间相对应的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
表。与直接发出SQL语句相比,这些MySQL表的NoSQL接口允许应用程序获得更高的读写性能,并且可以简化已经合并的系统的应用程序逻辑和部署配置memcached对内存中的缓存。的memcached接口
InnoDB
table在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
选择。目的是使页面只被读取一次,例如在全表扫描,可以比使用strict更快地被老化出缓冲池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
用于表示和强制共享访问锁到内存中的内部数据结构。互斥锁和读写锁统称为门闩. - MVCC
-
缩写”多版本并发控制”.这种技术允许
InnoDB
交易与某些隔离级别执行一致的阅读操作;也就是说,查询正在被其他事务更新的行,并查看这些更新发生之前的值。这是一个强大的提高技巧并发性,通过允许查询继续而无需等待锁由其他交易持有。这种技术在数据库世界中并不普遍。其他一些数据库产品和其他一些MySQL存储引擎不支持它。
- my.cnf
- my.ini
- MyODBC司机
-
另请参阅连接器/ ODBC.
- mysql
-
的mysql程序是MySQL数据库的命令行解释器。It过程SQL语句,以及mysql特定的命令,例如
显示表
,通过将请求传递给mysqld守护进程。 - MySQL企业备份
-
执行的授权产品热备份MySQL数据库。它在备份时提供了最大的效率和灵活性
InnoDB
表,还可以备份MyISAM
还有其他种类的桌子。 - mysqlbackup命令
-
的命令行工具MySQL企业备份产品。它执行一个热备份操作
InnoDB
表,MyISAM
还有其他种类的桌子。看到热备份,MySQL企业备份,热备份. - mysqlclient
-
由文件实现的库的非正式名称libmysqlclient,扩展
.一个
或所以
.另请参阅libmysqlclient.
- mysqld
-
mysqld,也被称为MySQL服务器,是一个单独的多线程程序,它完成了MySQL安装中的大部分工作。它不会产生额外的进程。MySQL服务器管理对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.
- 自然的关键
-
索引列,通常为主键,其中的值具有一定的现实意义。通常被反对,因为:
如果值发生变化,则可能需要进行大量索引维护来重新排序聚集索引并更新每个中重复的主键值的副本二级索引.
即使看似稳定的值也会以不可预测的方式发生变化,很难在数据库中正确表示。例如,一个国家可以变成两个或几个国家,使原来的国家代码过时。或者,关于惟一值的规则可能有例外。例如,即使纳税人的id对单个人来说是唯一的,数据库也可能必须处理违反该规则的记录,例如身份盗窃的情况。纳税人ID和其他敏感ID号的主键也很差,因为它们可能需要安全、加密,以及与其他列不同的处理方式。
因此,通常最好使用任意数值来形成一个合成的关键,例如使用自动递增列。
- 邻居页面
-
任何页面在相同的程度上作为一个特定的页面。当页面被选中时刷新,任何邻居页面脏作为对传统硬盘的I/O优化,通常也会刷新。在MySQL 5.6及以上版本中,这种行为可以通过配置变量来控制
innodb_flush_neighbors
;您可以将此设置用于SSD驱动器,因为SSD驱动器在随机位置写入小批量数据时没有相同的开销。 - 第二个关键锁
- 非自读
-
一个查询它不使用
选择……更新
或选择……共享模式锁定
条款。中全局表允许的唯一一种查询只读事务.a的反义词读锁.看到第14.7.2.3节,"一致的非锁定读取".选择……为分享
替换选择……共享模式锁定
在MySQL 8.0.1中,但是共享模式锁定
仍然可以向后兼容。 - 不可重复读
-
查询检索数据,而后面的查询在同一查询中检索数据的情况事务检索应该是相同的数据,但查询返回不同的结果(由同时提交的另一个事务更改)。
这种操作违背了酸数据库设计原理。在事务中,数据应该是一致的,具有可预测和稳定的关系。
在不同的隔离级别,防止不可重复读取可串行化的阅读而且可重复读取水平,并允许一致的阅读,读未提交的水平。
- 非阻塞I / O
-
另请参阅异步I / O.
- 归一化
-
一种数据库设计策略,将数据拆分为多个表,并将重复的值压缩到由ID表示的单个行中,以避免存储、查询和更新冗余或冗长的值。它通常用于OLTP应用程序。
例如,可以给一个地址一个唯一的ID,这样人口普查数据库就可以表示这种关系住在这个地址通过将该ID与家族中的每个成员关联,而不是存储复杂值的多个副本,例如美国Anytown大街123号.
另一个例子是,虽然一个简单的地址簿应用程序可能将每个电话号码作为人名和地址存储在同一个表中,但电话公司的数据库可能为每个电话号码提供一个特殊的ID,并将这些号码和ID存储在一个单独的表中。这种标准化表示可以简化区号分离时的大规模更新。
并不总是推荐标准化。主要是查询的数据,仅通过完全删除和重新加载进行更新的数据,通常保存在更少、更大的表中,表中有重复值的冗余副本。这种数据表示形式被称为规范化的,经常出现在数据仓库应用程序中。
- NoSQL
-
一组不使用的数据访问技术的广义术语SQL语言是它们读写数据的主要机制。一些NoSQL技术充当键值存储,只接受单值读写;一些放宽了限制酸方法;还有一些不需要预先计划模式.MySQL用户可以将nosql风格的处理与SQL操作相结合,以提高速度和简单性memcached直接访问MySQL表的API。的memcached接口
InnoDB
table在MySQL 5.6及更高版本中可用;看到memcached接口NDB
表在NDB Cluster 7.2及更高版本中可用;看到NDB集群的memcache API(不再支持). - 非空约束
-
一个类型的约束它指定了列不能包含任何零值。它有助于保存参照完整性,因为数据库服务器可以识别带有错误缺失值的数据。它还有助于查询优化所涉及的算法,允许优化器预测该列上索引中的条目数量。
- 零
-
的特殊值SQL,表示没有资料。涉及到。的任何算术运算或等式检验
零
值,反过来产生一个零
结果。(因此,它类似于IEEE NaN的浮点概念,”不是一个数字”)。任何聚合计算,例如AVG ()
忽略了行零
值时,确定除以多少行。唯一可行的测试零
值使用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
对操作使用乐观的策略,例如锁定而且提交.例如,事务更改的数据可以在提交发生之前写入数据文件,这使得提交本身非常快,但如果事务回滚,则需要更多的工作来撤消更改。与乐观策略相反的是悲观一是系统经过优化,能够处理不可靠且经常失败的操作。这种方法在数据库系统中很少见,因为在选择可靠的硬件、网络和算法方面花费了太多精力。
- 优化器
- 选项
-
为选项适用于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
页面固定为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-bound,file-per-table,一般的表空间,实例,OLTP,页面,固态硬盘,系统表空间,表空间.
- 父表
-
表在一个外键对象中指向的初始列值子表.在父表中删除或更新行的结果取决于
在更新
而且在删除
外键定义中的子句。子表中具有相应值的行可以自动删除或依次更新,也可以将这些列设置为零
,否则就可以阻止手术。 - 部分备份
- 部分指标
- 部分信任
-
通常由托管提供者使用的执行环境,其中应用程序具有某些权限,但没有其他权限。例如,应用程序可能能够通过网络访问数据库服务器,但不能”沙箱”关于读写本地文件。
另请参阅连接器/净.
- 性能模式
-
的
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
模块。有关详细信息,请参见API,Perl. - 持续的统计数据
-
存储的特性指数统计数据
InnoDB
表在磁盘上,提供更好的计划稳定为查询.有关更多信息,请参见指数,优化器,计划稳定,查询,表格. - 悲观
-
一种为了安全而牺牲性能或并发性的方法。如果大量的请求或尝试可能会失败,或者失败的请求的后果很严重,那么这种方法是合适的。
InnoDB
使用所谓的悲观主义锁定策略,把机会降到最低死锁.在应用程序级别,可以通过使用悲观策略来避免死锁,即在一开始就获取事务所需的所有锁。许多内置的数据库机制使用相反的方法乐观方法。
- 幻影
-
出现在查询的结果集中,但未出现在较早查询的结果集中的行。例如,如果一个查询在事务,与此同时,另一个事务在插入新行或更新行以便与
在哪里
查询的子句。这种情况被称为幻读。防患于未然不可重复读,因为锁定第一个查询结果集中的所有行并不会阻止导致幻象出现的更改。
在不同的隔离级别,幻像读取是由可串行化的阅读水平,和允许的可重复读取,一致的阅读,读未提交的水平。
- PHP
-
起源于web应用程序的一种编程语言。代码通常作为块嵌入到web页面的源代码中,当它通过web服务器传输时,输出被替换到页面中。这与CGI脚本等以整个网页的形式打印输出的应用程序相反。PHP风格的代码用于高度交互和动态的网页。现代的PHP程序还可以作为命令行或GUI应用程序运行。
MySQL应用程序是使用PHP api.可以写入可重用模块C并从PHP调用。
用MySQL编写服务器端网页的另一种技术是ASP.net.
- PHP API
-
几个api的MySQL应用程序的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企业备份产品,后各阶段应用二进制日志而且增量备份是完成了。结果文件已经准备好了恢复.在apply步骤之前,这些文件称为原始备份.
- 事先准备好的声明中
-
一种提前分析以确定有效执行计划的SQL语句。它可以被执行多次,而不会有每次解析和分析的开销。中的字面值可以替换不同的值
在哪里
子句,通过使用占位符。这种替换技术提高了安全性,可以防止某些SQL注入攻击。还可以减少将返回值转换和复制到程序变量的开销。虽然可以通过SQL语法直接使用预处理语句,但各种连接器有用于操作准备好的语句的编程接口,而且这些api比使用SQL更有效。
- 主键
-
一组列——也就是说,基于这组列的索引——可以唯一地标识表中的每一行。因此,它必须是一个唯一的索引,不包含任何
零
值。InnoDB
要求每个表都有这样的索引(也称为聚集索引或集群指数),并根据主键的列值组织表存储。当选择主键值时,考虑使用任意值(a合成的关键)而不是依赖于从其他来源(a自然的关键).
- 过程
-
正在执行的程序的实例操作系统在多个运行进程之间切换,允许一定程度的并发性.在大多数操作系统中,进程可以包含多个线程共享资源的执行。线程间的上下文切换比同等的进程间切换要快。
- pseudo-record
- Pthreads
-
POSIX线程标准,它定义了Unix和Linux系统上线程化和锁定操作的API。在Unix和Linux系统中,
InnoDB
将此实现用于互斥锁.另请参阅互斥锁.
- 清洗
-
由一个或多个独立的后台线程执行的一种垃圾收集类型
innodb_purge_threads
),它按周期运行。清除解析和处理undo日志页面的历史列表为了删除被标记为删除的聚集索引和二级索引记录(由previous删除
语句),不再需要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 FOR UPDATE;阻止任何其他事务插入、更新或删除值为
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
表。 - 参照完整性
-
以一致的格式维护数据的技术酸哲学。特别地,不同表中的数据通过使用外键约束,它可以防止发生更改,或自动将这些更改传播到所有相关的表。相关机制包括唯一约束,以防止错误地插入重复值,而非空约束,以防止错误地插入空白值。
- 关系
-
现代数据库系统的一个重要方面。数据库服务器对一对一、一对多、多对一和惟一等关系进行编码和强制。例如,一个人的地址数据库中可能有0个、1个或多个电话号码;一个电话号码可能与几个家庭成员相关联。在金融数据库中,可能要求一个人只有一个纳税人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开始,回滚段也被分配给全局临时表空间.
- 行
-
的集合定义的逻辑数据结构列.一组行组成一个表格.在
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
-
有两种api可用于Ruby程序员开发MySQL应用程序。MySQL/Ruby API是基于libmysqlclientAPI库。Ruby/MySQL API是使用本地MySQL网络协议(一个本地驱动程序)编写的。详情请参见libmysql,Ruby.
- 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兆字节)一次。类似地,当一个区段中的所有数据不再需要时,段释放该区段的空间值。
- 选择性
-
数据分布的一种属性,即一列中不同值的数量基数)除以表中记录的数量。高选择性意味着列值相对惟一,可以通过索引高效地检索。如果您(或查询优化器)能够预测
在哪里
子句只匹配表中的一小部分(或部分)行,即总体查询如果它使用索引先计算该测试,则会更有效。 - 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服务器、应用服务器或这些程序的一些组合),所以这个术语服务器也可以指计算机上运行的服务器软件。
- 服务器端预置语句
-
一个事先准备好的声明中由MySQL服务器管理。历史上,服务器端准备语句的问题导致连接器/ J而且连接器/ PHP开发人员有时使用客户端准备好的语句代替。对于现代的MySQL服务器版本,建议使用服务器端准备好的语句来提高性能、可伸缩性和内存效率。
- servlet
-
另请参阅连接器/ J.
- 共享锁
- 共享表空间
-
指代的另一种方式系统表空间或者一个一般的表空间.一般表空间是在MySQL 5.7中引入的。共享表空间中可以有多个表。控件中只能驻留一个表file-per-table表空间。
- 锋利的检查点
-
的过程冲洗磁盘上所有脏的某些部分中包含重做条目的缓冲池页重做日志.发生之前
InnoDB
重用日志文件的一部分;日志文件以循环的方式使用。通常发生在写密集的情况下工作负载. - 关闭
-
停止MySQL服务器进程。默认情况下,该进程清除InnoDB表,因此
InnoDB
可以慢要关机,但要快,稍后再启动。如果跳过清理操作,则为快关闭,但必须在下次重新启动期间执行清理操作。的关机模式
InnoDB
是由innodb_fast_shutdown
选择。 - 奴隶
-
看到副本.
- 慢速查询日志
-
一个类型的日志用于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之前,这个硬编码的值很难移动
InnoDB
MySQL实例之间的表空间文件。从MySQL 5.6开始,你可以使用移动式表空间涉及语句的特性刷新表……用于出口
,ALTER TABLE……丢弃表空间
,ALTER TABLE……导入表空间
.调整空间ID所需的信息在. cfg文件它和表空间一起复制。看到. cfg文件,file-per-table,一般的表空间,.ibd文件,系统表空间,表空间,移动式表空间. - 稀疏文件
-
一种文件类型,通过将表示空块的元数据写入磁盘,而不是写入实际的空空间,从而更有效地使用文件系统空间。的
InnoDB
透明页面压缩特性依赖于稀疏文件支持。有关更多信息,请参见InnoDB页面压缩. - 自旋
-
一个类型的等待连续测试资源是否可用的操作。这种技术用于通常只持有短时间的资源,在短时间内等待更有效”繁忙的循环”而不是让线程进入睡眠状态并执行上下文切换。如果资源在短时间内不可用,则自旋循环停止,并使用另一种等待技术。
- 春天
-
一个基于java的应用程序框架,通过提供一种配置组件的方法来帮助应用程序设计。
另请参阅J2EE.
- SQL
-
结构化查询语言,是执行数据库操作的标准语言。通常分为几类DDL,DML,查询.MySQL包含一些额外的语句类别,例如复制.看到DDL,DML,查询,复制.
- SQLState
- 固态硬盘
-
缩写”固态驱动器”.一种与传统硬盘驱动器性能不同的存储设备(硬盘驱动器):存储容量更小,随机读取速度更快,没有移动部件,并且有很多影响写性能的考虑因素。它的性能特性可以影响a的吞吐量disk-bound工作负载。
另请参阅disk-bound,硬盘驱动器.
- SSL
- 启动
-
启动MySQL服务器的进程。通常是由列在关闭.
另请参阅关闭.
- 声明拦截器
-
一个类型的拦截器用于跟踪、调试或扩充数据库应用程序发出的SQL语句。有时也被称为a命令拦截器.
在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.
- 代理键
-
另请参阅合成的关键.
- 合成的关键
-
索引列,通常为主键,其中的值是任意赋值的。通常使用自动递增列。通过将该值视为完全任意的值,可以避免过于严格的规则和错误的应用程序假设。例如,表示员工编号的数字序列可能会有一个空白,如果某个员工被批准招聘,但实际上从未加入。或者第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.5
InnoDB
系统表空间内的表必须使用羚羊文件格式,以向后兼容MySQL 5.1及更早版本。的羚羊文件格式支持紧凑的而且冗余行格式。系统表空间支持使用动态行格式,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集群还将它的表分成表空间。看到第18.5.10.1节," NDB集群磁盘数据对象"获取详细信息。
另请参阅压缩行格式,数据字典,数据文件,file-per-table,一般的表空间,指数,innodb_file_per_table,系统表空间,表格.
- Tcl
-
一种起源于Unix脚本世界的编程语言。有时通过编写的代码进行扩展C,c++,或Java.对于开源TclAPIMySQL,请参阅API.
- 临时表
-
一个表格它们的数据不需要真正永久。例如,在复杂的计算或转换中,临时表可以用作中间结果的存储区域;在崩溃后不需要恢复这个中间数据。数据库产品可以采取各种快捷方式来提高对临时表的操作的性能,比如不那么严格地将数据写入磁盘,以及采取其他措施来在重新启动时保护数据。
有时,数据本身会在特定的时间自动删除,例如事务结束或会话结束时。对于某些数据库产品,表本身也会自动删除。
另请参阅表格.
- 临时表空间
-
非压缩的表空间
InnoDB
临时表和相关对象,在MySQL 5.7中引入。的innodb_temp_data_file_path
配置文件选项定义临时表空间数据文件的相对路径、名称、大小和属性。如果innodb_temp_data_file_path
,则默认行为是创建一个自动扩展的12MB数据文件ibtmp1
在数据目录下。在每个服务器启动时重新创建临时表空间,并接收动态生成的空间ID。临时表空间不能驻留在原始设备上。如果无法创建临时表空间,启动将被拒绝。在正常关闭或中止初始化时删除临时表空间。当发生崩溃时,不会删除临时表空间。在这种情况下,数据库管理员可以手动删除临时表空间,或者使用相同的配置重新启动服务器,这样就可以删除并重新创建临时表空间。
另请参阅临时表.
- 文本集合
-
另请参阅全文索引.
- 线程
- 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
.有关更多信息,请参见InnoDB页面压缩.另请参阅file-per-table,孔冲孔,稀疏文件.
- 移动式表空间
-
允许表空间从一个实例移到另一个实例。传统上,这是不可能的
InnoDB
表空间,因为所有表数据都是系统表空间.在MySQL 5.6及更高版本中刷新表……用于出口
语法准备一个InnoDB
用于复制到另一个服务器的表;运行ALTER TABLE……丢弃表空间
而且ALTER TABLE……导入表空间
在另一个服务器上,将复制的数据文件放到另一个实例中。一个单独的. cfg文件,随附.ibd文件,用于更新表元数据(例如空间ID)作为表空间导入。看到. cfg文件,.ibd文件,空间ID,系统表空间,表空间. - 故障排除
-
一个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
变量有undo日志驻留撤消表空间,可以放置在另一个存储设备上,如固态硬盘.在MySQL 8.0中,undo日志存在于两个默认的undo表空间中,这两个表空间是在MySQL初始化时创建的,另外的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表空间,并且可以使用创建撤消表空间
语法。 - 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,事务.
- 视图
- 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
缓冲池.如果对页中的一行进行多次更新,或者对同一页中的多行进行更新,那么所有这些更改都将在一次写入操作中存储到数据文件中,而不是对每个更改进行一次写入操作。
X
- XA
-
用于协调分布式的标准接口交易,允许多个数据库在维护时参与一个事务酸遵从性。详情请参见
innodb_support_xa
配置选项,避免了为每个事务进行额外fsync的性能开销。从MySQL 5.7.10开始禁用
innodb_support_xa
不允许,因为这会导致复制不安全,并阻止与二进制日志小组提交。的innodb_support_xa
MySQL 8.0中删除了configuration选项。
Y
- 年轻的
-
的特征页面在
InnoDB
缓冲池这意味着它最近被访问过,因此被移动到缓冲池数据结构中,因此它不是刷新过早地被LRU算法。这个术语在某些场合使用INFORMATION_SCHEMA与缓冲池相关的表的列名。另请参阅缓冲池,冲洗,INFORMATION_SCHEMA,LRU,页面.