翻译水平有限,供英语不太好的朋友做个参考,欢迎大家提意见。
官网链接 https://dev.mysql.com/doc/refman/5.5/en/glossary.html
这些术语普遍应用在mysql服务器的相关信息中。这个作为InnoDB存储引擎相关术语的一个参考,而且多数的定义都和InnoDB相关。
.ARM file
ARCHIVE表的元数据。和.ARZ文件形成对比。以此作为扩展名的文件总是包含由MySQL Enterprise Backup 的mysqlbackup命令生成的备份。
参见 .ARZ file, MySQL Enterprise Backup, mysqlbackup command。
.ARZ file
ARCHIVE表的数据。和.ARM文件形成对比。以此作为扩展名的文件总是包含由MySQL Enterprise Backup 的mysqlbackup命令生成的备份。
参见 .ARZ file, MySQL Enterprise Backup, mysqlbackup command。
ACID(原子性、一致性、隔离性、持久性)
这个大家都知道,就不罗嗦了。
参见atomic, commit, concurrency, doublewrite buffer, isolation level, locking, rollback, transaction。
adaptive flushing(自适应刷新)
这是一种为了缓解InnoDB表由检查点引入的I/O开销的算法。mysql定期地刷新修改页的小集合,而不是把缓存池中的所有修改页立即刷新到数据文件中。适应性刷新算法通过评估执行这些定期刷新的最佳比率,基于刷新比率和redo信息生成的速度,扩展了这个进程。
参见 buffer pool, checkpoint, data files, flush, InnoDB, page, redo log。
adaptive hash index(自适应哈希索引)
这是一种通过在内存中构建哈希索引,使用=和IN分隔符来加速InnoDB表的优化手段。
operators, by constructing a hash index in memory. MySQL monitors index
mysql监控器索引搜索InnoDB表,并且如果哈希索引对查询有帮助的话,它会自动为频繁访问的索引页面构建一个哈希索引。在某种意义上,自适应哈希索引在运行时设置mysql来利用足够的主内存,和内存数据库的架构很接近。这种特征通过innodb_adaptive_hash_index 配置可选项来控制。由于这个特点并不是对所有的工作都有帮助,并且哈希索引使用的内存保留在缓存池中,因此就得对这种特性的可用和不可用性进行基准测试。哈希索引总是以已存在的以B-tree结构组织的InnoDB二级索引为基础来构建。mysql可以用为B-tree ── 依赖于对索引的搜索模式 ── 定义的键的任何长度的前缀来构建哈希索引。哈希索引可以是局部的;B-tree索引不需要整个地缓存在缓存池中。在Mysql 5.6和更高的版本中,利用InnoDB表的快速单值查询的另一种方式是使用InnoDB缓存插件。更多详情查看InnoDB memcached Plugin 。
参见 B-tree, buffer pool, hash index, memcached, page, secondary index。
AHI
adaptive hash index的首字母缩写。
参见 adaptive hash index 。
###AIO
异步I/O的首字母缩写。你可以在InnoDB消息或者关键字中查看这个缩写。
参见asynchronous I/O 。
Antelope
原始InnoDB文件格式的编码名称。支持REDUNDANT (冗余的)和COMPACT(紧凑的)行格式,但在Barracuda文件格式可用的行格式中较新的DYNAMIC(动态的)和COMPRESSED(压缩的)
参见Barracuda,compact row format, compressed row format,dynamic row format, file format, innodb_file_format, redundant row format。
application programming interface(API)
一组函数或存储过程。一个 API 提供了一组稳定的函数、存储过程、参数和返回值的名称和类型。
apply
当一个有* MySQL Enterprise Backup* 生成的备份不包含—备份正在执行时—发生的最新的改变时,更新备份文件来包含这些改变的过程,就是* apply* 。它由mysqlbackup
命令的apply-log
选项指定。
我们把变化应用之前的文件记作* raw backup*,把变化应用之后的文件记作* prepared backup*。这些变化存储在* ibbackup_logfile* 文件,一旦应用 完成以后,这个文件就再也不需要了。
参见hot backup,ibbackup_logfile,MySQL Enterprise Backup,prepared backup,raw backup。
asynchronous I/O(异步IO)
一种在 I/O 完成之前,允许其他进程执行的 I/O 操作类型,也就是大家所知道的* non-blocking I/O* 和 AIO 的简称。在不影响数据库可靠性的前提下,InnoDB
为某些可以并行运行的操作使用这种 I/O 类型,比如把一些没有被请求过但可能很快用到的页面读入到* buffer pool*。
在过去,InnoDB
只在 windows
平台上使用了异步 I/O。从InnoDB
插件1.1和 MySQL 5.5开始, InnoDB
在Linux系统上 使用异步I/O(asynchronous I/O)
。这次改变引入了对libaio
的依赖。在linux系统上,asynchronous I/O
使用innodb_use_native_aio
选项来配置,默认是开启的。在其他类Unix系统上,InnoDB
只使用synchronous I/O
。
参见buffer pool,non-blocking I/O。
atomic(原子性)
在SQL上下文中,transaction
(事务) 是一个工作单元,要么全部成功(commit
)要么全部失败(rollback
) 。事务的不可分割性是ACID
中的A
。
参见ACID,commit,rollback,transaction。
atomic instruction(原子性指南)
CPU提供的特殊指南,用来保证临界性的低级操作不会被中断。
auto-increment(自增)
表的列的一个自动递增的属性(由AUTO_INCREMENT
关键字指定)。这个属性让开发者在插入一个新的记录时不需要生成一个唯一值。由于它非空且值唯一,给查询优化器提供了很有用的信息。列的这些值在变化的上下文中可以作为查询关键字,而且由于它们是自动生成的,一般没有理由去修改它们;因为这个,主键通常都会指定这个属性。
由于在从数据库上再次执行SQL语句可能不会产生跟主数据库相同的一组列值,所以这个属性在基于SQL语句的复制(statement-based replication
)的情况下会产生问题。当你使用的主键是自增的时候,你只能在innodb_autoinc_lock_mode=1
的配置下使用基于SQL语句的复制。
如果你设置innodb_autoinc_lock_mode=2
,就允许了插入操作的更高的并发,这时候使用基于行的复制(row-based relication
)而不是基于SQL语句的复制。除非是兼容性目的,不要用innodb_autoinc_lock_mode=0
的设置。
连续(consecutive)锁模式(innodb_autoinc_lock_mode=1
)在MySQL 8.0.3之前是默认设置。到MySQL 8.0.3,交错(interleaved)锁模式(innodb_autoinc_lock_mode=2
)是默认设置了,反映了默认复制方式从基于SQL语句的复制到基于行的复制 的改变。
参见auto-increment locking ,innodb_autoinc_lock_mode,primary key,row-based replication,statement-based replication。
auto-increment locking(自增锁定)
auto-increment
的主键的方便性涉及到一些和并发有关的折中平衡。在简单的案例中,如果一个事务正在向一个表中插入数据,其他任何事务都必须等待对那张表的插入操作,从而让第一个事务插入的记录可以接收到连续的主键值。InnoDB
包含的优化和 innodb_autoinc_lock_mode
选项可以让你配置和优化自增值和插入操作最大并发数之间的平衡。
参见auto-increment,concurrency,innodb_autoinc_lock_mode。
autocommit(自动提交)
一个SQL语句执行完就提交的设置。在InnoDB 表有连续几个SQL语句的事务中,不推荐使用这种方式。这种方式对InnoDB表的只读事务有性能上 的帮助,在只读事务中,它可以减少锁定和undo数据的生成的开销,特别是在MySQL5.6.4及以上的版本中。 由于在MyISAM
表中事务不适用,所以这种方式也很合适。
参见commit,locking,read-only transaction,SQL,transaction,undo。
availability(可用性)
从主机宕机,包括MySQL,操作系统,或者硬件和会造成停机的维护行为等故障中恢复和处理这些故障的能力。通常和可扩展性(scalability)一起作为大规模部署的重要方面。
参见scalability。