【若泽大数据】MySQL参数详解

本文详细探讨了InnoDB主线程如何处理数据更新,特别是关于Innodb_buffer_pool_size的缓存策略。通过调整允许不实时刷回磁盘的百分比,可以在减少恢复时间与增加物理I/O之间找到平衡。针对写操作频繁的业务场景,如SNS游戏行业,建议设置该比例为20%。
摘要由CSDN通过智能技术生成
系统变量提供的是各种与服务器配置和功能有关的信息。大部分的系统变量都可以在服务器启动时进行设置。在运行时,每一个系统变量都拥有一个全局值或会话值,或者同时拥有这两个值。许多系统变量都是动态的,也就是说,可以在服务器郑州运行时修改它们的值。这些类型的信息都会在每个变量的描述里(与变量名同处一行)指明。
对于那些可以在服务器启动时设置的变量,看到的是“自动”一词,后面紧跟着“直接设置”或某个选项。“直接设置”的意思是:可以在命令行上或者在选项文件里,使用与变量名同名的选项直接设置该变量。否则,在“启动”的后面需要紧跟用来设置变量的那个选项。
如果需要指明某个变量的作用范围,则会看到“启动”一词,而后面紧跟着的是“全局”或“会话”(或者两者皆有),用以表明该变量是否拥有GLOBAL形式或SESSION形式(或者是否同时拥有这两种形式)。运行时只读的变量通常只有一个全局值。
对于那些在服务器运行时可以进行修改的变量,则会看到“动态”一词。
通过 SHOW VARIABLES 语句或 mysqladmin variables 命令,可以查看这些系统变量。也可以检查数据库 INFORMATION_SCHEMA 里的 GLOBAL_VARIABLES 表和 SESSION_VARIABLES 表,以获得系统变量的信息。要想显示单个变量值,可以对于全局变量使用 SELECT @@GLOBAL.var_name,对会话变量使用 SELECT @@SESSION.var_name 或 SELECT @@var_name。
使用 SET 语句可以设置系统变量。如果要设置全局变量,则必须要拥有 SUPER 权限。设置会话变量通常不需要特别的权限。例外情况会特别注明。
系统变量的名字不区分大小写。




auto_increment_increment (启动:直接设置;作用范围:全局、会话;动态)
在服务器每次生成一个新序列值时,AUTO_INCREMENT 值的地增量。取值范围是 1~65535;默认值为1 。
auto_increment_offset (启动:直接设置;作用范围:全局、会话;动态)
AUTO_INCREMENT 序列的其实质。取值范围是 1~65535;默认值为 1 。
autocommit (启动:直接设置;作用范围:全局、会话;动态)
事务处理的自动提交模式。默认值为 1,因此自动提交功能是启用的,并且语句会立即生效。本质上,每条语句都是其自身的事务。将这个值设置为 0,可以禁用自动提交功能,如此一来,后续语句便只有等到提交完成(可以使用 COMMIT 语句,或者将 autocommit 设置为1来完成提交)之后才能生效。如果提交还未发生,则可以通过 ROLLBACK 来取消事务里的语句。将 autocommit 这时为1,可以重新启用自动提交(并且会隐式提交所有挂起的事务)。
auto_sp_privileges (启动:直接设置;作用范围:全局;动态)
如果此变量为1(默认值),那么在你创建存储例程时,MySQL服务器将自动授予你 EXECUTE 和 ALTER ROUTINE 权限,让你随后可以执行、修改或删除该例程。当删除例程时,MySQL服务器会收回那些权限。如果auto_sp_privileges 的值为0,则上述权限的自动授予和回收机制将不起作用。
back_log(启动:直接设置;作用范围:全局)
当前连接正在处理时,排队中的最大等待连接请求数量。
basedir(启动:直接设置;作用范围:全局)
MySQL安装根目录的路径名。如果其他路径名是以相对路径名的形式给出的,那么这些路径名会相对于此目录进行解析。
big_tables(启动:直接设置;作用范围:全局、会话;动态)
将此变量设置为1,可以使得在处理大型的结果集时,将所有临时结果保存到磁盘,而不是讲它们保留在内存里。虽然这样做会使性能变得慢一点,但是那些要求大型临时表的SELECT语句不会产生“表已满”的错误。其默认值为0(即把临时表保存在内存里)。通常情况下,不需要设置此变量,因为服务器会根据需要自动将结果保存到磁盘里。
bind_address(启动:直接设置;作用范围:全局)
服务器在监听TCP/IP客户端连接时所绑定的那个IP地址。自MySQL5.6.6起,其默认值为*(即监听所有的IPv4和IPv6接口);那一起的版本,默认值为0.0.0.0(即监听所有的IPv4接口)。此变量是在MySQL5.6.1里引入的。
binlog_cache_size(启动:直接设置;作用范围:全局;动态)
用于存储SQL语句(在将它们刷新到二进制日志之前,它们是事务的一部分)的那个缓存的大小。(只有当事务被提交,或者事务里包括有对非事务型表进行更新的语句时,这些语句才会被刷新。如果只回滚某个更新事务型表的事务,那么这些语句将被丢弃。)
binlog_checksum(启动:直接设置;作用范围:全局;动态)
是否在往二进制日志写入的事件里包含校验和。可取值包括:NONE(不写入校验和)和CRC32。此变量是在MySQL 5.6.2里引入的。在MySQL 5.6.6之前,默认值为NONE;之后,默认值为CRC32。
binlog_direct_non_transactional_updates(启动:直接设置;作用范围:全局、会话;动态)
可以同时更新事务型表和非事务型表的事务,可能会导致住服务器里的更新与从服务器里的更新不一致,因为对非事务型语句的更新,在它们出现在二进制日志之前,对于其他会话来讲是可见的。启用此变量(默认是禁用的)会导致非事务型更新被立即写到二进制日志里,而不是被缓存起来,一直到事务提交之后才写入。启用此变量,仅对于那些使用基于语句的日志记录进行复制的语句才有效。
binlog_format(启动:直接设置;作用范围:全局、会话;动态)
二进制的日志记录格式。其可取值包括:STATEMENT、ROW和MIXED,分别代表的是基于语句的日志记录格式、基于行的日志记录格式和混合型日志记录格式。如果使用unhealthy格式,则MySQL服务器将根据具体情况在基于语句的和基于行的日志记录格式之间自动切换。默认格式为STATEMENT。运行时,如果要更改此变量或者会话值,客户端必须拥有SUPER权限。
binlog_row_image(启动:直接设置;作用范围:全局、会话;动态)
基于行的二进制日志记录会使用之前和之后的“图像”来标书原始行和更改行。binlog_row_image控制着这些图像将包含多少列。FULL(默认值)表示记录所有列。MINIMAL只会记录那些需要确定行的列和被更改过的列。NOBLOB与FULL很想,它去掉了无关紧要的BLOB和TEXT列。此变量是在MySQL 5.6.2里引入的。
binlog_rows_query_log_events(启动:直接设置;作用范围:全局、会话;动态)
在启用基于行的二进制日志记录之后,启用此变量可以让有助于调试的信息包含在二进制日志里。此变量是在MySQL 5.6.2里引入的。
binlog_stmt_cache_size(启动:直接设置;作用范围:全局;动态)
在事务内执行非事务语句所需要的使用的缓存的大小。默认大小为32K。此变量是在MySQL 5.5.9里引入的。
bulk_insert_buffer_size(启动:直接设置;作用范围:全局、会话;动态)
用于帮助优化往MyISAM表里批量插入语句的缓存的大小。这里包括LOAD DATA语句、行INSERT语句和INSERT INTO … SELECT语句。当值为0时将禁用优化。
character_set_client(作用范围:全局、会话;动态)
客户端想服务器发送的那些SQL语句的字符集。
character_set_connection(作用范围:全局、会话;动态)
“客户端-服务器”连接的字符集。它主要用于解释字符串常量(带有前异符的字符串不包括在内),以及哪些“从数字转换到字符串”而得到的那些字符串的字符集。
character_set_database(作用范围:全局、会话;动态)
默认数据库(如果有的话)的字符集。如果没有默认的数据库(例如,如果客户在连接MySQL服务器时没有指定默认数据库),此变量将被设置为系统变量character_set_server的值。每当用户选择一个不同的数据库,MySQL服务器便会自动设置character_set_database的值。
character_set_filesystem(启动:直接设置;作用范围:全局、会话;动态)
文件系统的字符集。这个字符集用来解释SQL语句里的文件名字符串,如LOAD DATA语句里的数据文件的名字。服务器在访问文件之前,会先把文件名从character_set_client变量指定的字符集转换为character_set_filesystem变量指定的那个字符集。默认为binary(即不会进行转换)。
character_set_results(作用范围:全局、会话;动态)
服务器的发送给客户端的那些查询结果的字符集。
character_set_server(启动:直接设置;作用范围:全局、会话;动态)
服务器的默认字符集。
character_set_system(作用范围:全局)
系统字符集。其值总是utf8。这是各种元数据(如数据库名、表名和列名)锁使用的字符集。像DATABASE()、CURRENT_USER()、USER()和VERSION()这样的函数也是使用这个字符集。
character_set_dir(启动:直接设置;作用范围:全局)
存放字符集文件的那个目录。
collation_connection(作用范围:全局、会话;动态)
链接的字符集排序规则。
collation_database(作用范围:全局、会话;动态)
数据库的字符集排序规则,如果有的话。如果没有默认的数据库(例如,如果客户在连接MySQL服务器时没有指定默认数据库),此变量将被色织为系统变量collation_server的值。每当用户选择一个不同的数据库,MySQL服务器便会自动设置collation_database的值。
collation_server(启动:直接设置;作用范围:全局、会话;动态)
服务器默认字符集所对应的默认排序方式。
completion_type(启动:直接设置;作用范围:全局、会话;动态)
事务的完成类型。此变量的值为0(默认值)或NO_CHAIN时,不会影响COMMIT和ROLLBACK。此变量的值为1或CHAIN时,将导致COMMIT和ROLLBACK分别等价于COMMIT AND CHAIN和ROLLBACK AND CHAIN语句。此变量的值为2或者RELEASE时,将使它们分别等价于COMMIT RELEASE和ROLLBACK RELEASE。AND CHAIN的含义是,当一个事务结束时,服务器将终止会话。
concurrent_insert(启动:直接设置;作用范围:全局;动态)
对于在数据文件的中间没用空洞的MyISAM表,MySQL服务器允许在对已有行进行检索的同时在该表的末尾插入新行。此变量控制着服务器是否允许并发插入。此变量的值为0(或NEVER)时,会禁用此功能。此变量的值为1(或AUTO)时,会启用此功能。此变量的值为2(或ALWAYS)时,会对所有的MyISAM表启用并发插入,不管它们的数据文件里是否有空洞;此时,新行将被添加到正被使用的那个表的末尾,或者插到空洞处。默认值为1。
connect_timeout(启动:直接设置;作用范围:全局;动态)
mysqld在开始建立连接时等待数据包的秒数。默认值为10。
core_file(启动:直接设置;作用范围:全局)
当发生致命错误时,服务器在退出前是否需要生成一个核心文件。此变量是在MySQL 5.6.2里引入的。
datadir(启动:直接设置;作用范围:全局)
MySQL数据目录的路径名。
date_format(作用范围:全局)
此变量未被使用。
datetime_format(作用范围:全局)
此变量未被使用。
debug(作用范围:全局、会话;动态)
调试输出的类型。此变量只有在服务器编译时带有调试支持时才存在。
default_storage_engine(启动:直接设置;作用范围:全局、会话;动态)
在创建表时,如果没有带上ENGINE=engine_name选项或使用了一个不被支持的engine_name值,就使用此变量指定的引擎作为默认存储引擎。存储引擎的名字不区分大小写。默认为InnoDB。
default_tmp_storage_engine(启动:直接设置;作用范围:全局、会话;动态)
与default_storage_engine相似,但它适用于那些使用CREATE TEMPORARY TABLE创建的表。此变量是在MySQL 5.6.3里引用的。
default_week_format(启动:直接设置;作用范围:全局、会话;动态)
当调用WEEK()或YEARWEEK()函数时,如果不带可选的mode参数,则默认为此变量设置的那个模式值。
delay_key_write(启动:直接设置;作用范围:全局;动态)
对于使用DELAY_KEY_WRITE选项创建的MyISAM表,服务器是否需要延迟键写入。此变量由以下3中可取值。
ON(默认值)。此时,服务器会根据DELAY_KEY_WRITE选项的值进行操作;如果表时用DELAY_KEY_WRITE=1选项创建的,则延迟键写入;如果表使用DELAY_KEY_WRITE=0选项创建的,则不延迟。
OFF。它表示的是,对任务表都不延迟键写入,不管它们是如何定义的。
ALL。它表示的是,对任务表都总是延迟键写入,不管它们是如何定义的。
比较常见的做法是,在运行复制从服务器时将delay_key_write设置为ALL,以提高MyISAM表的性能(不管这些表最初是如何被创建的,都延迟其键写入)。
delayed_insert_limit(启动:直接设置;作用范围:全局;动态)
它指的是该表的延迟行处理器在检查表是否有新的SELECT语句到来之前插入的源自INSERT DELAYED语句的行数量。如果有语句到达,则将插入操作挂起,以便检索操作能够得到执行。
delayed_insert_timeout(启动:直接设置;作用范围:全局;动态)
当INSERT DELAYED操作的处理器插入完排队的各个行是,它会等待dealyed_insert_timeout秒,检查一下是否有新的INSERT DELAYED行到达。如果有行到达,则继续插入;否则终止插入操作。
delayed_queue_size(启动:直接设置;作用范围:全局;动态)
每个表针对INSERT DELAYED有可以排入队列的行数量。当队列排满时,则会有更多针对该表的INSERT DELAYED语句被阻塞,一直到队列拥有足够的空间为止。
div_precision_increment(启动:直接设置;作用范围:全局、会话;动态)
在使用操作符/对两个精确数值做除法运算时,此变量表示的是需要增加的精度位数。例如,当div_precision_increment的值为4或6时,.1/.7的结果分别为.14286或0.1428571。此变量的取值范围是0~30,默认为4。
eq_range_index_dive_limit(启动:直接设置;作用范围:全局、会话;动态)
对于使用非唯一索引的相等比较处理,它指的是优化器使用索引统计代替索引等分进行行估算的范围上限。当值为0时,将禁用统计。默认为10。此变量是在MySQL 5.6.5里引入的。在此之前,不管范围值为多少,都会使用索引等分。
error_count(作用范围:会话)
这时一个只读会话变量,它表示的是可能产生错误的最后那条语句所产生的错误数量。
event_scheduler(启动:直接设置;作用范围:全局;动态)
时间调度器的状态。此变量的可取值包括:OFF、ON或DISABLED。在启动MySQL服务器时,如果把此变量设置为DISABLED,那么时间调度器的状态将无法再MySQL服务器运行时被更改。在启动MySQL服务器时,如果把此变量设置为ON或OFF,那么在MySQL服务器运行时只能让事件调度器的状态在这两个值之间进行更改。默认值为OFF。
expire_logs_days(启动:直接设置;作用范围:全局;动态)
此变量的默认值为0。如果将其设置成其他的值,则MySQL服务器将自动删除在expire_logs_days天之前创建的日志文件,并更新该二进制日志的索引文件。MySQL服务器将在它每次启动以及每次打开一个新的二进制日志文件时执行这个到期检查。
external_user(作用范围:会话)
这是个只读变量,可以通过用于认证当前用户的身份认证插件进行设置。此变量是在MySQL 5.5.7里引入的。
flush(启动:直接设置;作用范围:全局;动态)
它用于表明服务器是否会在每次更新后将MyISAM表刷新到磁盘。这样可以降低在出现系统崩溃时表被损坏的风险,但是它会严重降低性能。因此,只有在使用不稳定的系统时它才会有用处。默认值是OFF。
flush_time(启动:直接设置;作用范围:全局;动态)
如果此变量为非零值,那么MySQL服务器会每隔flush_time秒关闭一次表,以便将尚未写入磁盘的更改刷新到磁盘。如果你的系统不够稳定,经常会死机或重启,那么使用此方法强行更新表,便可以减少表受损或数据丢失的概率,但是会降低性能。在Unix系统上,其默认值为0;在Windows上,其默认值为1800(即30分钟)。
foreign_key_checks(作用范围:全局、会话;动态)
将此变量设置为0或1将分别禁用或期待InnoDB表的外键检查。默认进行检查。禁用外键检查有时会非常有用。例如,可以按不同于表的外键关系所要求的顺序恢复一个创建和加载表的转储文件。在加载完表之后,可以重新启用外键检查。
ft_boolean_syntax(启动:直接设置;作用范围:全局;动态)
支持使用IN BOOLEAN MODE模式的进行FULLTEXT搜索的操作符列表。
ft_max_word_len(启动:直接设置;作用范围:全局)
包括在FULLTEXT索引里的单词所允许的最大长度。更长的单词会被忽略掉。在你更改此变量的值时,应该重建所有拥有这些FULLTEXT索引的MyISAM表的索引。默认值为84。
ft_min_word_len(启动:直接设置;作用范围:全局)
包括在FULLTEXT索引里的单词所允许的最小长度。更短的单词会被忽略掉。在你更改此变量的值时,应该重建所有拥有这些FULLTEXT索引的MyISAM表的索引。默认值为4。
ft_query_expansion_limit(启动:直接设置;作用范围:全局)
此变量用于那些使用WITH QUERYEXPANSION子句完成的全文检索。它决定了在每次搜索的第二阶段所能使用的“最佳匹配”的数量。
ft_stopword_file(启动:直接设置;作用范围:全局)
用于FULLTEXT索引的停用词文件。默认使用内奸的停用词列表。如果要禁用停用词,可以将此变量的值设置为空串。在你更改此变量的值或者停用词列表的内容时,应该重建所有拥有这些FULLTEXT索引的MyISAM表的索引。
general_log(启动:直接设置;作用范围:全局;动态)
它用于指定是否要用普通查询日志的日志记录。如果要启用,log_output变量会控制日志的输出目标。
general_log_file(启动:直接设置;作用范围:全局;动态)
它指的是普通查询日志文件的名字。在启用了FILE日志记录目标时,会用到它。它默认位于数据目录里的HOSTNAME.log中,其中HOSTNAME时服务器主机的名字。如果其文件名是以相对路径形式给出的,则服务器会将它解释为相对于数据目录。
group_concat_max_len(启动:直接设置;作用范围:全局、会话;动态)
GROUP_CONCAT()函数返回值的长度上限(默认为1024)。
have_compress(作用范围:全局)
它表示的是,服务器用于实现COMPRESS()和UNCOMPRESS()函数所需要的那个zlib压缩库是否可用。如果不可用,那么这两个函数将无法使用。
have_crypt(作用范围:全局)
它表示的是,服务器用于实现CRYPT()函数所需要的那个crypt()系统调用是否可用。如果不可用,那么该函数将无法使用。
hav_dynamic_loading(作用范围:全局)
它表示的是,服务器是否支持动态加载各种插件。
have_geometry(作用范围:全局)
它表示的是,空间数据类型是否可用。
have_openssl(作用范围:全局)
它表示的是,服务器是否允许客户端使用SSL来建立加密连接。have_openssl等同于have_ssl。
have_query_cache(作用范围:全局)
它表示的是,查询缓存是否可用。
have_rtree_keys(作用范围:全局)
它表示的是,RTREE索引是否可用于SPATIAL索引。
have_ssl(作用范围:全局)
它表示的是,服务器是否允许客户端使用SSL来建立加密连接。have_ssl等同于have_openssl。
have_symlink(作用范围:全局)
如果服务器在启动时带有—skip-symbolic-links选项,则此变量为DISABLED;否则,其可取值为YES或NO,但是实际的含义取决于具体的系统平台。在Unix里,它表示MyISAM表是否支持表符号的链接。在Windows里,它表示是否支持数据库符号链接。
host_cache_size(启动:直接设置;作用范围:全局;动态)
它指的是主机缓存的大小,这个缓存的用途是保存与客户端连接尝试以及尝试是否成功有关的信息。连接失败时主机通常会被阻塞,一直到该缓存被刷新。在运行时更改此变量的值会刷新该缓存(与FLUSH HOSTS的效果一样)。默认值为128。此变量是在MySQL 5.6.5里引入的。
hostname(作用范围:全局)
服务器的主机名。MySQL服务器会在启动时自动确定此变量的值。
identity(作用范围:会话;动态)
等同于会话变量last_insert_id。
ignore_db_dirs(启动:直接设置;作用范围:全局)
此变量会被—ignore-db-dir选项的实例进行设置,它表示的是数据库目录里的目录不会被SHOW DATABASES或数据库INFORMATION_SCHEMA里的表当作数据库目录。默认为空。此变量是在MySQL 5.6.3里引入的。
init_connect(启动:直接设置;作用范围:全局;动态)
如果此变量的值不为空,那么它指定的是一条或多条以分号分隔的SQL语句(它们会在每个SUPER权限的用户,init_connect变量将被忽略,目的是为了避免此变量值里包含的不正确或不恰当的语句导致管理员用户无法连接到服务器更正该错误。
init_file(启动:直接设置;作用范围:全局)
如果此变量的值不为空,那么它指定的是一个文件名,该文件名对应的文件中包括的是服务器在启动时执行的SQL语句。如果文件名是以相对路径形式指定的,那么服务器会将它解释为相对于数据目录。此文件应该是每行一条语句,并且这些语句不应该以“;”或者其他终止符作为结尾。
init_slave(启动:直接设置;作用范围:全局;动态)
对于主复制服务器,如果此变量的值不为空,那么它指定的是在每个从复制服务器进行连接时都会被执行的语句。该值的内容应该是一条或多条SQL语句,期间用分号分割。
Innodb_xxx


insert_id(作用范围:会话;动态)
设置此变量,可以指定下一个INSERT语句在插入一个AUTO_INcREMENT列时使用的值。它用于二进制日志的处理。
interactive_timeout(启动:直接设置;作用范围:全局、会话;动态)
此变量指的是,在服务器自己认为可以将交互式客户端会话关闭之前,该会话能够保持空闲的秒数。对于非交互式客户端,需要使用wait_timeout变量来代替。
join_buffe_size(启动:直接设置;作用范围:全局、会话;动态)
它指的是连接(它们是在未使用索引的情况下执行的,并且需要进行全表扫描)和特定类型的索引扫描所使用的缓冲区的最小大小。
keep_files_on_create(启动:直接设置;作用范围:全局、会话;动态)
如果在创建MySAM表的CREATE TABLE语句里明确给出了DATA DIRECTORY或INDEX DIRECTORY选项,并且服务器在给定的目录里分别找到了一个已有的数据文件或索引文件,那么它会返回一个错误。当没有使用DATA DIRECTORY或INDEX DIRECTORY选项来指定数据文件或索引文件的存放位置时,keep_files_on_create变量会控制服务器如何创建MyISAM表。如果此变量的值为OFF(默认值),并且服务器找到了一个已有的.MYD数据文件或.MYI索引文件,那么它会覆盖该文件。如果此变量的值为ON,服务器会返回一个错误。
key_buffer_size(启动:直接设置;作用范围:全局;动态)
它指的是用于缓存MyISAM表索引块的缓冲区大小。这个缓冲区在各个会话之间是共享的。此变量和其他的键缓存变量(key_cache_age_threshold、key_cache_block_size和key_cache_limit)是以分组的形式存在的,并且可以作为结构化系统变量的组成部分进行访问。为了更好地控制键缓存的作用,可以创建多个键缓存。
key_cache_age_threshold(启动:直接设置;作用范围:全局;动态)
它指的是,在被移到暖子链之前,未使用的缓冲块在MyISAM键缓存的热子链里可以保留多久。值越高,允许缓冲块在热子链里保留的时间越长。默认值为300。最小值为100。
key_cache_block_size(启动:直接设置;作用范围:全局;动态)
它指的是MyISAM键缓存的块大小。默认情况下,一个缓存看的大小为1024字节。
key_cache_limit(启动:直接设置;作用范围:全局;动态)
如果此变量被设置为它的默认值100,则MyISAM键缓存将使用“最近最少使用”策略来解决缓存缓冲区的重用问题。如果设置的值小于100,则键缓存将使用“中间插入”策略,而此变量的值即为暖缓冲子链使用的键缓存百分比值。此变量的取值范围是1~100。
language(启动:直接设置;作用范围:全局)
此变量已过时。请使用lc_messages和lc_messages_dir来代替。
large_files_support(作用范围:全局)
它指的是,MySQL服务器是否能够处理大文件。
large_page_size(作用范围:全局)
如果启用了大页面支持,此变量指的是大内存页的大小。如果未启用,则其值为0。
large_pages(启动:直接设置;作用范围:全局)
它指的是是否启用了大内存页支持功能。只有Linux系统才支持大页面。
last_insert_id(作用范围:会话;动态)
设置此变量,可以指定LAST_INSERT_ID()的返回值。它用于二进制日志的处理。
lc_messages(启动:直接设置;作用范围:全局、会话;动态)
出错信息的本地化语言。服务器会将本地化名字转换为语言名字,并在lc_messages_dir变量指定的目录里查找该语言名字所对应的目录,以便找到错误信息文件的位置。
lc_messages_dir(启动:直接设置;作用范围:全局)
存放出错信息文件的目录。
lc_time_names(启动:直接设置;作用范围:全局、会话;动态)
它指的是函数DATE_FORMAT()、DAYTIME()和MONTHNAME()显示日期和月份名字所使用的本地化语言。默认值为en_US,但是也可以设置为POSIX风格的语言名称,如es_AR(西班牙语/阿根廷)或zh_HK(中文/中国香港)。
license(作用范围:全局)
它指的是服务器所使用的许可类型。例如,如果服务器遵从的是GNU GPL(通用公共许可证)条款,则其值为GPL。
local_infile(启动:直接设置;作用范围:全局;动态)
它指的是服务器是否允许在LOAD DATA语句里使用LOCAL修饰符。
lock_wait_timeout(启动:直接设置;作用范围:全局、会话;动态)
它指的是等待每个元数据所的秒数。如果语句阻塞的时间超过了等待锁的时间,就会出错。允许的取值范围是1~31536000(默认为1年)。此变量是在MySQL 5.5.3里引入的。
locked_In_memory(启动:--memlock;作用范围:全局)
服务器是否锁定在内存中。
log(作用范围:全局)
此变量已在MySQL 5.6里被弃用并删除。请使用general_log来代替。
log_bin(作用范围:全局)
是否启用二进制日志记录功能。请注意,--log-bin选项设置的是log_bin_basename,而非log_bin。
log_bin_basename(作用范围:全局)
二进制日志文件的完整路径名。此变量是在MySQL 5.6.2里引入的。
log_bin_index(作用范围:全局)
二进制日志索引文件的名字。此变量是在MySQL 5.6.2里引入的。
log_bin_trust_function_creators(启动:直接设置;作用范围:全局;动态)
如果要创建或修改存储函数,则必须拥有相应的CREATE ROUTINE权限或ALTER ROUTINE权限。不过,如果启用了二进制日志记录功能,并且log_bin_trust_function_creators的值为0(默认值),那么还必须拥有SUPER权限,并且生命该存储函数是确定性的(即不会修改任何数据)。如果想禁用这些附加的要求,可以将此变量值设置为1。
log_error(启动:直接设置;作用范围:全局)
错误日志文件的名字。如果不设置此变量,服务器会吧出错信息输出到控制台中断。如果在服务器启动时指定了此变量,但未设置具体值,则日志文件名为数据目录里的HOSTNAME.err,其中,HOSTNAME为服务器主机的名字。如果其文件是以相对路径形式给出的,则服务器会将它解释为相对于数据目录。如果在指定文件名时没有带扩展名,mysqld会添加一个扩展名.err。
log_output(启动:直接设置;作用范围:全局;动态)
如果启用了普通查询日志和慢查询日志,则此变量指定的是它们的输出目标。此变量列出的是一组以都好分割的输出目标名。允许目标包括:TABLE、FILE和NONE。如果指定了此变量,则NONE值会禁用日志记录功能,并且它比其他的值优先级更高。默认值为FILE。设置系统变量general_log_file或slow_query_log_file,可以指定相应日志文件的名字。
log_queries_not_using_indexs(启动:直接设置;作用范围:全局;动态)
如果启用了慢查询日志,则此变量将控制那些不使用索引的查询是否应该被记录。如果进行记录,将使得日志文件迅速变得较大。请参考log_throttle_queries_not_using_indexes。
log_slave_updates(启动:直接设置;作用范围:全局)
对于复制从服务器从其主服务器的二进制日志里接收到的更新,此变量控制着从服务器是否把这些更新记录到它自己的二进制日志里。默认情况下,从服务器的更新记录功能是禁用的。但是在链式复制设置里,允许将一个从服务器当作另一个从服务器的主服务器。
log_throttle_queries_not_using_indexes(启动:直接设置;作用范围:全局;动态)
如果启用了log_throttle_queries_not_using_indexes,则它指的是每分钟最多向慢查询日志里写入的语句数量。默认值为0,表示“无限制”。此变量是在MySQL 5.6.5里引入的。
log_slow_queries(启动:直接设置;作用范围:全局)
此变量已在MySQL 5.6里被弃用并删除。请使用slow_query_log来代替。
log_warnings(启动:直接设置;作用范围:全局、会话;动态)
它指的是把非关键性警告信息记录到出错日志的记录级别。如果此变量的值为0,则不记录这些警告消息;如果值为1(默认值),则启用记录。如果此变量的值大于1,则会提高日志记录的级别,以包括那些与异常中止连接和“拒绝访问”错误有关的信息。
long_query_time(启动:直接设置;作用范围:全局、会话;动态)
此变量值的单位是秒。如果某个查询命令的执行时间大于了这个值(以及检查的记录会超过min_examined_row_limit行),则它会被认为是一个“慢”查询,并且会导致状态变量slow_queries增加。此外,如果已启用慢查询日志记录功能,则服务器会将该查询写入该日志。
最小值和默认值分别为0和10。该值可以包含小数部分(即微秒)。不过,只有日志目标时一个文件,而不是mysql.slow_query表时,才会记录小数部分。
low_priority_updates(启动:直接设置;作用范围:全局、会话;动态)
如果启用此变量,则对于使用表级锁定机制的存储引起,更新操作的优先级将低于检索操作。那些会修改表内容的语句(DELETE、INSERT、REPLACE、UPDATE)将一直等待,知道表上没有SELECT语句正在执行或者正在等待执行。如果有心的SELECT语句到来时,另一条SELECT语句还在执行,那么新语句会立即执行,而不是等待优先级的修改语句。对于那些支持LOW_PRIORITY选项的语句(如INSERT和UPDATE),启用此变量与指定该选项的效果一样。对于单独的INSERT语句,可以通过HIGH_PRIORITY选项来取笑此变量的效果,并把插入操作恢复到正常的优先级。
lower_case_file_system(作用范围:全局)
此变量用来表明包含数据目录的文件系统是否区分文件名的大小写。如果此变量的值为ON,怎文件名不区分大小写。(即可以把ON的含义理解为文件名的大写和小写版本都是一样的。)如果此变量的值为OFF,则文件名区分大小写。
lower_case_table_names(启动:直接设置;作用范围:全局)
此变量控制的是,在执行CREATE DATABASE和CREATE TABLE语句时,如何处理数据库名和表明所对应的目录名和文件名。当执行这些语句时,它还控制着服务器会如何进行名字比较。下表列出了各种可能的取值。
取值                                     含义                                 
       按照CREATE DATABASE和CREATE TABLE语句里给出的名字来创建磁盘文件。名字的比较会区分大小写。在文件名区分大小写的系统里,它是默认设置。
       在创建数据库和表时,名字强制转换为小写形式。名字的比较不区分大小写
       以小写形式保存名字,但是在进行比较时不区分大小写。也就是说,创建的文件名与那些CREATE语句里指定的一样,但是不以区分大小写的形式进行不叫。只有在文件名区分大小写的系统里才会使用此变量的值。
当没有显示设置lower_case_table_names变量时,如果数据目录所在的文件系统不区分文件名的大小写,那么MySQL服务器将自动把此变量设置为2。将此变量设置为非零值,也会使得表的别名不区分大小写。
master_info_repository(启动:直接设置;作用范围:全局;动态)
此变量表示的是,从服务器是将主服务器的日志信息写入文件,还是写入表。如果该值为FILE(默认值),则从服务器日志文件有—master-info-file选项指定。如果该值为TABLE,则服务器会把日志记录到mysql.slave_master_inro表中。此变量是在MySQL 5.6.2里引入的。
master_verify_checksum(启动:直接设置;作用范围:全局;动态)
此变量表示的是,在主服务器把从二进制日志里读取到的事件发送到从服务器之前,它是否验证这些时间的校验和。默认值为OFF。此变量是在MySQL 5.6.2里引入的。
max_allowed_packet(启动:直接设置;作用范围:全局、会话;动态)
它指的是服务器与客户端之间通信时使用的那个缓冲区的最大大小。该缓冲区的初始大小为net_buffer_length个字节,但是会根据需要增大到max_allowed_packet个字节。这个值也会限制MySQL服务器所能处理的字符串的最大长度。此变量的默认值和最大值分别是1MB和1GB。它的会话值是只读的。
max_binlog_cache_size(启动:直接设置;作用范围:全局;动态)
它指的是二进制日志缓存的最大大小。在事务被提交之前,构成事务的那些语句都会保存在二进制日志缓存里,它们要等到事务被提交时才会被写入二进制日志。如果某个事务超出了此变量所设定的最大长度,就必须被刷新到一个临时硬盘文件里。那些影响非事务语句的语句会被单独缓存;请参考max_binlog_stmt_cache_size。
max_binlog_size(启动:直接设置;作用范围:全局;动态)
它指的是二进制日志文件的最大大小。如果当前二进制日志文件达到了此大小,则MySQL服务器将关闭它,并开始使用下一个文件。此变量的取值范围为4KB~1GB。默认值为1GB。
如max_relay_log_size被设置为0,那么max_binlog_size变量页会对从服务器的中继日志文件的大小进行限制。
max_binlog_stmt_cache_size(启动:直接设置;作用范围:全局;动态)
此变量与max_binlog_cache_size相似,但是仅限于那些影响非事务表的语句(它们会被单独缓存起来)。此变量是在MySQL 5.5.9里引入的。
max_connect_errors(启动:直接设置;作用范围:全局;动态)
它指的是,主机在被组织继续进行连接之前,允许连接失败的次数。这是为了防止有人从该主机试图攻击数据库系统。如果想清空这个主机缓存,并重新启用被阻塞的主机,可以使用FLUSH HOSTS语句或者mysqladmin flush-hosts命令。请参考状态变量Connect_errors_xxx。
max_connections(启动:直接设置;作用范围:全局;动态)
它指的是客户端连接的最大并发数。默认值为151。
max_delayed_threads(启动:直接设置;作用范围:全局、会话;动态)
它指的是为处理INSERT DELAYED语句而允许创建的最大线程数。当达到最大处理器数时,所有新接收到的这类语句都将被当作非DELAYED语句。客户端可以把此变量的值设置为0,以便在自己的会话里禁用DELAYED插入。
max_error_count(启动:直接设置;作用范围:全局、会话;动态)
它指的是服务器可以保存的出错信息、警告信息和提醒信息的最大数量。(这些信息总是会被通缉。此变量只会影响相关信息的存储数量,并且可供SHOW ERRORS和SHOW WARNINGS使用。)
max_heap_table_size(启动:直接设置;作用范围:全局、会话;动态)
它指的是新建MEMORY表的最大允许长度。更改此变量的值不会影响那些已有表,除非使用ALTER TABLE或者TRUNCATE TABLE语句来修改它们。此变量可以用于防止服务器使用过多的内存。此变量还会对服务器如何处理其内部使用的各种内存表产生影响;请参考对tmp_table_size变量的描述。
max_insert_delayed_threads(启动:使用—max-delayed-threads选项;作用范围:全局、会话;动态)
此变量等同于max_delayed_threads。
max_join_size(启动:直接设置;作用范围:全局、会话;动态)
当执行多表连接时,MySQL优化器会估算它需要检查多少个行组合。如果估算值超过了max_join_size行,则会出现一个错误。如果你习惯于编写会返回大量行的SELECT语句,则可以使用此变量。这个限制不会应用于存储在查询缓存里的查询结果,因为缓存里的查询结果不需要再次执行该查询即可被返回。
此变量需要与sql_big_selects变量一起使用,详见对该变量描述的讨论。将max_join_size设置为DEFAULT以外的某个值,会自动将sql_big_selects设置为0。
max_length_for_sort_data(启动:直接设置;作用范围:全局、会话;动态)
查询优化器将使用此变量来确定应该为ORDER BY操作执行哪一种filesort当作。
max_prepared_stmt_count(启动:直接设置;作用范围:全局;动态)
它指的是服务器可以同时维护的预处理语句的最大数。将此变量的值设置得更小一点,可将其用于限制服务器占用的内存。此变量的可取值范围是0~1000000默认值为16382。当将其值设置为0时,可以完全禁用预处理语句。
max_relay_log_size(启动:直接设置;作用范围:全局;动态&#x
大数据MySQL文件测试用例是一种测试方法,用于验证大数据MySQL文件在不同情况下的功能和性能。以下是一些可能的测试用例: 1. 文件导入测试:验证MySQL是否能够正确导入大数据文件,包括CSV、Excel等格式。测试数据可以包含不同字段和记录数量,以确保文件导入功能的稳定性和准确性。 2. 数据库连接测试:测试数据库连接的性能和稳定性,特别是在大数据文件导入期间。通过模拟多个并发用户进行数据库连接,验证MySQL是否能够处理大量的连接请求,并保持稳定的性能。 3. 数据查询测试:测试MySQL大数据文件中进行查询的性能。包括简单查询、多表连接查询、复杂查询等情况,以确保MySQL能够高效地处理大数据文件中的查询请求。 4. 数据插入测试:测试MySQL大数据文件中插入数据的性能。通过模拟大量的数据插入请求,验证MySQL是否能够高效地处理大数据文件中的数据插入操作,并保持数据一致性和完整性。 5. 数据更新测试:测试MySQL大数据文件中更新数据的性能。通过模拟大量的数据更新请求,验证MySQL是否能够高效地处理大数据文件中的数据更新操作,并保持数据一致性和完整性。 6. 数据删除测试:测试MySQL大数据文件中删除数据的性能。通过模拟大量的数据删除请求,验证MySQL是否能够高效地处理大数据文件中的数据删除操作,并保持数据一致性和完整性。 7. 性能测试:测试MySQL大数据文件中的性能表现,包括响应时间、吞吐量、并发处理能力等。通过模拟大量的并发用户进行性能测试,验证MySQL是否能够稳定地处理大数据文件的操作,并满足性能需求。 总之,大数据MySQL文件测试用例涵盖了文件导入、数据库连接、数据查询、数据插入、数据更新、数据删除以及性能等方面的测试,旨在验证MySQL在处理大数据文件时的功能和性能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值