MySQL™ 参考手册(MySQL术语表A)

MySQL术语表A

这些术语一般用于MySQL数据库服务器的信息中,这个术语表最初是做为有关InnoDB存储引擎的术语的参考,大多数定义都与InnoDB相关。mysql

.ARM文件算法

  • ARCHIVE表的元数据,与.ARZ文件造成对比,具备此扩展名的文件老是包含在MySQL Enterprise Backup产品的mysqlbackup命令生成的备份中。

.ARZ文件sql

  • ARCHIVE表的数据,与.ARM文件造成对比,具备此扩展名的文件老是包含在MySQL Enterprise Backup产品的mysqlbackup命令生成的备份中。

ACID数据库

  • 原子性、一致性、隔离性和持久性的缩写。这些属性在数据库系统中都是须要的,而且都与事务的概念紧密相关,InnoDB的事务特性遵循ACID原则。
  • 事务是能够提交或回滚的工做的原子单位,当事务对数据库进行屡次更改时,要么全部更改在提交事务时成功,要么全部更改在回滚事务时撤消。
  • 在每次提交或回滚以后,以及在事务进行期间,数据库始终处于一致的状态,若是跨多个表更新相关数据,查询将看到全部旧值或全部新值,而不是新旧值的混合。
  • 事务在进行过程当中彼此受到保护(隔离),它们不能相互干扰或查看彼此未提交的数据,这种隔离是经过锁定机制实现的。经验丰富的用户能够调整隔离级别,当他们可以确保事务之间确实没有相互干扰时,就能够用更少的保护换取更高的性能和并发性。
  • 事务结果是持久的:一旦提交操做成功,该事务所作的更改就不会受到电源故障、系统崩溃、竞争条件或许多非数据库应用程序容易受到的其余潜在危险的影响。持久性一般包括对磁盘存储的写入,具备必定的冗余,以防止在写入操做期间出现电源故障或软件崩溃(在InnoDB中,双写缓冲区有助于提升持久性)。

自适应冲洗编程

  • 一种用于InnoDB表的算法,它能够消除检查点引入的I/O开销,MySQL不是一次性将全部修改过的页面从缓冲池刷新到数据文件,而是按期刷新一小组修改过的页面。自适应冲洗算法扩展了这一过程,根据冲洗速度和生成重作信息的速度,估计执行这些周期性冲洗的最优速度。

自适应哈希索引缓存

  • InnoDB表的优化,经过在内存中构造一个哈希索引,可使用=IN操做符加速查找,MySQL监视对InnoDB表的索引搜索,若是查询能够从哈希索引中获益,它会为常常访问的索引页自动构建一个索引。从某种意义上说,自适应哈希索引在运行时配置MySQL以利用充足的主内存,这更接近于主内存数据库的体系结构,这个特性由innodb_adaptive_hash_index配置选项控制,因为该特性对某些工做负载有好处,但对其余工做负载没有好处,并且用于哈希索引的内存保留在缓冲池中,所以一般应该使用启用和禁用该特性来进行基准测试。
  • 哈希索引老是基于表上现有的B-tree索引构建的,MySQL能够在为B-tree定义的任意长度的键的前缀上构建散列索引,这取决于对索引的搜索模式,哈希索引能够是局部的,整个B-tree索引不须要缓存在缓冲池中。
  • 在MySQL 5.6或更高版本中,利用InnoDB表快速单值查找的另外一种方法是使用InnoDB memcached插件。

AIO服务器

  • 异步I/O的缩写,你可能在InnoDB消息或关键字中看到这个缩略词。

应用程序编程接口(API)并发

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

applyapp

  • MySQL Enterprise Backup产品生成的备份不包含在备份过程当中发生的最新更改时,更新备份文件以包含这些更改的过程称为apply步骤,它由mysqlbackup命令的apply-log选项指定。
  • 在应用更改以前,咱们将这些文件称为原始备份,应用更改以后,咱们将这些文件称为准备好的备份,更改记录在ibbackup_logfile文件中,一旦apply步骤完成,就再也不须要这个文件了。

异步I/O异步

  • 一种I/O操做,容许在I/O完成以前进行其余处理,也称为非阻塞I/O,缩写为AIOInnoDB对某些操做使用这种类型的I/O,这些操做能够并行运行,而不会影响数据库的可靠性,好比将没有实际请求的页面读入缓冲池,但可能很快就会须要。
  • 过去,InnoDB只在Windows系统上使用异步I/O,从InnoDB Plugin 1.1和MySQL 5.5开始,InnoDB在Linux系统上使用异步I/O,这个更改引入了对libaio的依赖。Linux系统上的异步I/O是使用innodb_use_native_aio选项配置的,该选项在默认状况下是启用的,在其余类unix系统上,InnoDB只使用同步I/O。

原子

  • 在SQL上下文中,事务是工做单元,要么彻底成功(提交时),要么彻底无效(回滚时),事务不可分割(“atomic”)属性是ACID中的“A”。

原子DDL

  • 原子DDL语句是将与DDL操做关联的数据字典更新、存储引擎操做和二进制日志写入组合到单个原子事务中的语句。事务要么彻底提交,要么回滚,即便服务器在操做期间暂停,原子DDL支持是在MySQL 8.0中添加的。

原子指令

  • 由CPU提供的特殊指令,以确保不能中断关键的低级别操做。

自动递增

  • 表列的一个属性(由AUTO_INCREMENT关键字指定),该属性自动在列中添加升序值。
  • 它为开发人员节省了工做,没必要在插入新行时生成新的唯一值,它为查询优化器提供了有用的信息,由于已知列不是null,而且具备唯一的值。此类列中的值能够在各类上下文中用做查找键,由于它们是自动生成的,因此没有理由更改它们,所以,主键列一般指定为自动递增。
  • 对于基于语句的复制,自动递增列可能会有问题,由于因为时间问题,在从服务器上从新执行语句可能不会生成与主服务器上相同的列值集。当你有一个自动递增的主键时,你只能在设置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包含优化和innodb_autoinc_lock_mode选项,这样你就能够在可预测的自动递增值序列和插入操做的最大并发性之间进行配置和优化平衡。

自动提交

  • 在每一个SQL语句以后引起提交操做的设置,不推荐使用这种模式来处理具备跨多个语句的事务的InnoDB表。它能够帮助InnoDB表上的只读事务的性能,尤为是在MySQL 5.6.4及以上版本中,它将锁定和生成撤销数据带来的开销降到最低,它也适用于处理不适用事务的MyISAM表。

可用性

  • 可以处理主机上的故障,并在必要时从故障中恢复,包括MySQL、操做系统或可能致使停机的硬件和维护活动的故障,一般,可伸缩性是大规模部署的关键方面。
相关文章
相关标签/搜索