mysql show global variables

本文转载自:http://dwchaoyue.blog.51cto.com/2826417/1599394 

以下变量全部来自mysql5.5.40-log 包括该版本的所有变量,绝大部分变量都是解释的,那些没有解释的变量不是很重要,不过后期还是会补充上去的。以下变量只有部分经过本人验证,,没有验证均来自大师的博客.仅供参考。

 

#自增值相关

auto_increment_increment   #   增量

auto_increment_offset      #  起始值/偏移量

http://chengxuyuan.naxieshir.com/fenlei/2/p/151.html

http://blog.csdn.net/feihong247/article/details/7748783

 

 

automatic_sp_privileges   # 这个参数的不是很重要,默认值就行了,大致意思是 sp创建之后,

是否对其创建者赋予该sp的执行权限和修改权限。

http://www.tuicool.com/articles/EvY3ee

 

 

back_log      #  TCP/IP连接的侦听队列的大小 http://www.jb51.net/article/5148.htm

basedir        #  mysql 的安装目录

big_tables   # 就版本中使用  ,同 sql_big_tables

binlog_cache_size     #  事务性(innodb/ndb)存储引擎的产生的二进制日志缓存区大小  http://blog.sina.com.cn/s/blog_63426ff90101dwno.html

binlog_direct_non_transactional_updates  #  非事务引擎(myisam)产生的二进制日志直接写入二进制文件,防止造成主从不一致, 该变量在5.6中已停用

binlog_format  #  二进制日志格式 , 建议设置为row,

binlog_stmt_cache_size       #   非事务语句的二进制日志缓存

bulk_insert_buffer_size      # 批量插入数据缓存大小,可以有效提高插入效率,默认为8M

 

# 字符设置,

character_set_client 

character_set_connection  

character_set_database

character_set_filesystembinary

character_set_results 

character_set_server

character_set_system

character_sets_dir  

collation_connection 

collation_database

collation_server

 

#  事务相关

completion_type    # 事务类型,  默认为扁平事务

autocommit  #   设置隐式事务是否自动提交 

 

# myisam的并发设置

concurrent_insert  

通常来说,在MyISAM里读写操作是串行的,但当对同一个表进行查询和插入操作时,为了降低锁竞争的频率,根据concurrent_insert的设置,

MyISAM是可以并行处理查询和插入的: 

当concurrent_insert=0时,不允许并发插入功能。 

当concurrent_insert=1时,允许对没有洞洞的表使用并发插入,新数据位于数据文件结尾(缺省)。 

当concurrent_insert=2时,不管表有没有洞洞,都允许在数据文件结尾并发插入。 

这样看来,把concurrent_insert设置为2是很划算的,至于由此产生的文件碎片,可以定期使用OPTIMIZE TABLE语法优化。 

 

connect_timeout  #  链接超时设置 ,在网络状态不佳时可以将该值设置大一点

 

datadir    

date_format 

datetime_format 

default_storage_engineInnoDB   #  默认存储引擎

default_week_format

delay_key_write   #  延迟键值插入 ,数据更新可以先写入磁盘,键值更新稍后再写入磁盘,  http://database.51cto.com/art/201108/285874.htm

delayed_insert_limit    # 延迟行插入 不建议使用 ,有丢失数据的风险  http://www.shangxueba.com/jingyan/1942545.html

delayed_insert_timeout    # 延迟插入超时   http://www.jb51.net/article/25654.htm

delayed_queue_size  # 为INSERT DELAYED分配多一个队列;如果队列满了,当有客户端插入时将等待直到队列又有空间了

 http://blog.chinaunix.net/uid-16569211-id-2945912.html

div_precision_increment   # 小数精度控制   http://blog.chinaunix.net/uid-7692530-id-2567599.html

 

engine_condition_pushdown  # 该变量适用于NDB

event_scheduler  #  事件调度器开关

expire_logs_days   # 保留的 二进制日志天数

flush

flush_time # 默认1800,最小值0。如果设置为一个非零值,所有表关闭每flush_time的的秒钟以释放资源并同步未刷新到磁盘上的数据。

http://www.hicoogle.com/mysql5-5-database-my-cnf-configuration-file-variable-description.html

 

foreign_key_checks    # 启用外键约束 

 

#  全文索引相关

ft_boolean_syntax   # 改变IN BOOLEAN MODE的查询字符,不用重新启动MySQL也不用重建索引。  http://www.cnblogs.com/macula7/archive/2011/05/18/2050525.html   

                               

ft_max_word_len                 # 最长的索引字符串,默认值因版本而不同,余同上一点。  http://www.cnblogs.com/macula7/archive/2011/05/18/2050525.html

ft_min_word_len   # 最短的索引字符串,默认值为4,修改后必须重建索引文件。  http://www.cnblogs.com/macula7/archive/2011/05/18/2050525.html

ft_query_expansion_limit    # 使用WITH QUERY EXPANSION进行全文搜索的最大匹配数。

ft_stopword_file  # 内建列表

 

# 查询日志相关

general_log    # 查询日志开关

general_log_file  # 查询日志路径

 

group_concat_max_len    #   group_concat的 长度  http://www.jb51.net/article/31945.htm

 

have_compress   #  是否zlib压缩库适合该服务器。如果不适合,不能使用COMPRESS()和UNCOMPRESS()函数。

have_crypt   # 是否crypt()系统调用适合该服务器。如果不适合,不能使用CRYPT()函数。

have_csv  # 如果mysqld支持ARCHIVE表则为YES,否则为NO。

 

have_dynamic_loading  # 是否支持动态加载插件

http://blog.csdn.net/tenfyguo/article/details/7706534

 

have_geometry          # 是否支持空间数据类型

have_innodb            # 是否支持innodb

have_ndbcluster        # 是否支持ndb。

have_openssl           # 如果mysqld支持客户端/服务器协议的SSL(加密)则为YES。

have_partitioning      #  是否支持分区

have_profiling         # 只读变量,用于控制是否由系统变量开启或禁用profiling

have_query_cache       #  是否支持查询缓存

have_rtree_keys        # RTREE索引是否可用。(用于MyISAM表的空间索引)。

have_ssl

have_symlink           # 是否启用符号链接支持。在Unix中需要用于支持DATA DIRECTORY和INDEX DIRECTORY表选项。

hostname               #  服务器的名字        

 

ignore_builtin_innodb  # 是否忽略内建的innodb  http://www.orczhou.com/index.php/2010/03/innodb-plugin-setup/

 

init_connect # 服务器为每个连接的客户端执行的字符串。字符串由一个或多个SQL语句组成。要想指定多个语句,用分号间隔开。

例如,每个客户端开始时默认启用autocommit模式。没有全局服务器变量可以规定autocommit默认情况下应禁用,但可以用init_connect来获得相同的效果:

init_file # 启动服务器时用--init-file选项指定的文件名。文件中包含服务器启动时要执行的SQL语句。每个语句必须在同一行中并且不能包括注释。

init_slave # 该变量类似init_connect,但是每次SQL线程启动时从服务器应执行该字符串。该字符串的格式与init_connect变量相同。

 

innodb_adaptive_flushing      #设定是否允许MySQL服务器根据工作负载动态调整刷写InnoDB buffer pool中的脏页的速率。

动态调整刷写速率的目的在于避免出现IO活动尖峰。默认值为ON。作用范围为全局级别,可用于选项文件,属动态变量。

http://www.tuicool.com/articles/m2Uvqa

 

innodb_adaptive_hash_index   # 开启自适应哈希索引 增强性能  http://blog.csdn.net/z1988316/article/details/7844808

 

innodb_additional_mem_pool_size   # 用于缓存InnoDB数据字典及其他内部结构的内存池大小,类似于Oracle的library cache。这不是一个强制参数,可以被突破

innodb_autoextend_increment  # 当自动扩展表空间被填满之时,每次扩展空间的大小,默认值是8(单位MB)  http://linux.chinaunix.net/techdoc/database/2008/10/09/1037252.shtml

innodb_autoinc_lock_model   # 生成自增长值锁的模式  http://www.tuicool.com/articles/m2Uvqa

innodb_buffer_pool_instances   # 设定将InnoDB的buffer pool分隔为多少个区域。对于有着数GB空间的buffer pool来说,

将其分隔为多个区域可以降低不同的线程对缓存页面的读写操作时资源争用系数,进行增强其并发能力。

在buffer pool中,读取或存入页面时所选择的区域是基于hash算法随机进行的。每个buffer pool管理自己的空闲列表、列表刷写、LRU以及

其它跟buffer pool相关的数据结构,并通过各自的互斥锁进行保护

http://www.tuicool.com/articles/m2Uvqa

 

innodb_buffer_pool_size     # innodb内存缓冲池大小

innodb_change_buffering    # 设定InnoDB是否启用修改缓冲(change buffering)以及使用何种类型的修改缓冲。

修改缓冲是一种优化方式,它能够通过延迟写入操作至第二索引将IO操作转换为顺序模式。其接受的值有inserts(缓冲insert操作)、

deletes(缓冲delete-marking操作)、changes(缓冲insert和delete-marking操作)、purges(缓冲purge操作)、all(缓冲insert、delete-marking和purge操作)

和none(不缓冲任何操作)。默认值是all

http://www.tuicool.com/articles/m2Uvqa

 

innodb_checksums   # InnoDB能够使用校验和(checksum)来验正从磁盘读取的所有页面数据的完整性,从而提高对硬件或数据文件损坏的容错能力。

默认为启用,然而,在少数情况下或许需要禁用这种特性,这可以通过使用--skip-innodb-checksums命令行选项实现。

作用范围为全局,可用于选项文件,属非动态变量

http://www.tuicool.com/articles/m2Uvqa

 

innodb_commit_concurrency   #  这个参数设置了同一时刻允许同时commit的线程数。默认是0即不限制,取值范围0-1000,不可动态修改

http://www.tuicool.com/articles/m2Uvqa

 

innodb_concurrency_tickets   #  在一个线程进入(enter)InnoDB时,其将会获取一定数量的“自由卷轴”(free tickets)并凭这些卷轴自由出入InnoDB(即免检),

直到其卷轴耗尽;而后的线程将被置于等待队列中,并可能需要再次接受并发上限限制检查。此变量则正是用于设定可同时进入InnoDB的线程并发数,

即线程的“自由卷轴”数量。默认值是500。作用范围为全局,可用于选项文件,属动态变量。

http://www.tuicool.com/articles/m2Uvqa

 

innodb_data_file_path   # 指定InnoDB的各个数据文件及其大小,文件多于一个时彼此间用分号隔开

innodb_data_home_dir   # innodb 数据目录

innodb_doublewrite    # 开启二次写功能

 

innodb_fast_shutdown    # 在关闭时,参数innodb_fast_shutdown影响着表的存储引擎为InnoDB的行为。该参数可取值为0、1、2,默认值为1。

0表示在MySQL数据库关闭时,InnoDB需要完成所有的full purge和merge insert buffer,并且将所有的脏页刷新回磁盘。

这需要一些时间,有时甚至需要几个小时来完成。如果在进行InnoDB升级时,必须将这个参数调为0,然后再关闭数据库。

1是参数innodb_fast_shutdown的默认值,表示不需要完成上述的full purge和merge insert buffer操作,但是在缓冲池中的一些数据脏页还是会刷新回磁盘。

2表示不完成full purge和merge insert buffer操作,也不将缓冲池中的数据脏页写回磁盘,而是将日志都写入日志文件。这样不会有任何事务的丢失,

但是下次MySQL数据库启动时,会进行恢复操作(recovery)。

 http://book.2cto.com/201305/23349.html

 

innodb_file_format    # 设定新建InnoDB表的文件格式。其可接受的参数有Antelope和Barracuda,

但这仅对基于变量innodb_file_per_file的每表表空间文件有影响。某些InnoDB特性如表压缩功能仅有Barracuda文件格式支持。

作用范围为全局,可用于选项文件,属动态变量。

http://www.tuicool.com/articles/m2Uvqa

 

innodb_file_format_check   # 用于设定InnoDB是否在MySQL服务器启动时检查共享表空间的文件格式标签。检查标签时如果其高于当前InnoDB版本所支持的能力,

InnoDB就会产生错误并拒绝启动;否则,对MySQL 5.5.5 及后来的版本来说InnoDB则会设置变量innodb_file_format_max的值为共享表空间的文件格式标签,

而对于MySQL 5.5.5之前的版本来说,InnoDB会将共享表空间的文件格式设置为变量innodb_file_format_check的值。作用范围为全局,可用于选项文件,属非动态变量。

http://www.tuicool.com/articles/m2Uvqa

 

innodb_file_format_max  #在MySQL服务启动时,InnoDB会将变量innodb_file_format_max的值设置为共享表空间的文件格式标签(比如,Antelope或Barracuda)。

如果MySQL服务器创建或打开了一个有着更高级格式的表,此变量的值则会被设置为那个更高级的格式。作用范围为全局,可用于选项文件,属动态变量。

http://www.tuicool.com/articles/m2Uvqa

 

innodb_file_per_table   # 独立表空间

 

innodb_flush_log_at_trx_commit   # 日志刷新的方式,可以设置为 {0,1,2}

0:表示每秒钟刷新一次日志到磁盘

1:每个事务提交时刷新日志到磁盘

2:事务提交提交时刷新日志到文件系统

 

innodb_flush_method      #  控制innodb数据文件及redo log的打开、刷写模式http://blog.csdn.net/dukope/article/details/9015539

 

innodb_force_load_corrupted   # 设定InnoDB在启动时是否装载标记为“已损坏(corrupted)”的表。仅应该在troubleshooting的场景中启用该功能以修复无法访问的表

,在troubleshooting任务完成后应该禁用此功能并重启MySQL服务。作用范围为全局,可用于选项文件,属非动态变量。

http://www.tuicool.com/articles/m2Uvqa

 

innodb_force_recovery   # 设定InnoDB的故障恢复模式  http://www.tuicool.com/articles/m2Uvqa

innodb_io_capacity     # 设定InnoDB后台任务(如从缓冲池刷写页面或合并修改缓冲中的数据等)可执行的I/O操作上限  

http://www.tuicool.com/articles/m2Uvqa

 

innodb_large_prefix   # 设定对于使用了DYNAMIC或COMPRESSED行格式的InnoDB表来说,是否能够使用大于767字节长度的索引前缀 

http://www.tuicool.com/articles/m2Uvqa

 

innodb_lock_wait_timeout   # innodb 锁等待超时

innodb_locks_unsafe_for_binlog   # 设定InnnoDB是否在搜索和索引扫描中使用间隙锁(gap locking)http://www.tuicool.com/articles/m2Uvqa

 

innodb_log_buffer_size    #  日志缓冲区大小

innodb_log_file_size    # 日志文件大小

innodb_log_files_in_group     #  控制日志文件数量

innodb_log_group_home_dir      # 日志文件目录 ,

 

innodb_max_dirty_pages_pct    # 设定InnoDB的缓冲池中脏页比例的上限,默认为75。当缓存池中的脏页比例接近或达到此变量定义的比值时,

InnoDB的主线程会将刷写部分脏页中的数据至对应的文件中。作用范围为全局级别,可用于选项文件,属动态变量。

 

innodb_max_purge_lag    # InnoDB事务系统会维持一个有索引记录被添加了删除标记(delete-marked)的事务的列表,此列表的长度即为清写延迟(purge_lag)。

此变量用于设定当发生清写延迟时,其队列长度达到多大时开始延迟INSERT、UPDATE或DELETE操作

http://www.tuicool.com/articles/m2Uvqa

 

innodb_mirrored_log_groups     # 设定日志组镜像的个数。其值应该为1。

innodb_old_blocks_pct      # 冷热页面分界点   http://www.tuicool.com/articles/m2Uvqa

 

innodb_old_blocks_time   # 用于设定缓冲池中旧块子列表中的某旧块在其第一次又被访问到时,

其至少需要在旧块子列表中再呆上多长时间(单位为毫秒)才会被转移至新块子列表

 

http://www.tuicool.com/articles/m2Uvqa

 

innodb_open_files    # 设定MySQL可同时打开的.ibd表空间文件的数量上限    http://www.tuicool.com/articles/m2Uvqa

 

innodb_print_all_deadlocks    # 打印出死锁的相关信息到错误日志

 

innodb_purge_batch_size    # 清写(purge)是指将缓存池中的脏页同步至持久性存储设备中的操作,以重做日志的记录为单位。

此变量则用于定义清写操作的粒度,即多少个重做日志记录组合起来可以触发一次清写操作,默认值为20。

此变量通常用于跟innodb_purge_threads=1一起对进行性能调优,

但一般场景中都不需要修改它。作用范围为全局级别,可用于选项文件,属非动态变量

http://www.tuicool.com/articles/m2Uvqa

 

innodb_purge_threads     # 设定InnoDB执行清写操作的线程数量。默认值为0,表示清写操作由InnoDB的主线程自己完成,

这可以降低内部资源竞争发生的概率,进而增强MySQL服务伸缩能力。不过,随着InnoDB内部各式各样的竞争越来越多,

这种设置带来的性能优势已几乎不值一提。作用范围为全局级别,可用于选项文件,属动态变量。

http://www.tuicool.com/articles/m2Uvqa

 

innodb_random_read_ahead  :随机预读

 

innodb_read_ahead_threshold     # 设定InnoDB预读页面至缓冲池时的线性预读敏感度,也即InnoDB的读操作至少从一个盘区(extent,包含64个页面)

中读取多个页面时才会为读取整个盘区中后续的页面初始化一个异步读操作。默认值为56

http://www.tuicool.com/articles/m2Uvqa

 

innodb_read_io_threads     #  设定InnoDB为读操作启动的I/O线程数量,默认为4个。作用范围为全局级别,可用于选项文件,属非动态变量

innodb_replication_delay   # 设定在从服务器(slave)上运行的线程数达到innodb_thread_concurrency变量定义的并发上限时复制线程需要延迟的时长

 

innodb_rollback_on_timeout     # 设定事务执行过程超时时事务回滚的方式。在MySQL 5.5中,默认为OFF,

表示仅回滚事务中的最后一个语句。如果设置为ON,则表示中止事务执行并回滚整个事务.

 

innodb_rollback_segments    # 设定InnoDB在系统表空间中为每个事务使用多少个回滚段(rollback segment),默认为128个

innodb_spin_wait_delay    # 此变量则正是用于定义InnoDB自旋操作的空闲循环转数,默认为6转

innodb_stats_method    # 设定MySQL为InnoDB表收集分布的索引值的统计数据时如何处理NULL类型的数据

innodb_stats_on_metadata    # 设定使用SHOW TABLE STATUS或者SHOW INDEX这两个元数据语句时,或访问INFORMATION_SCHEMA中的TABLES或STATISTICS表时,

InnoDB是否更新统计数据。默认为更新

 

innodb_stats_sample_pages   # 默认范围1-2*64-1号样品的折射率分布统计的索引页  (索引数据抽样大小)

innodb_strict_mode  # 开启InnoDB严格检查模式 http://book.2cto.com/201402/40321.html 

innodb_support_xa     # 支持外部事务  ,保证事务日志和二进制日志的一致性

innodb_sync_spin_loops  # 设定一个线程在等待InnoDB释放某个互斥量(mutex)之前自旋的转数,当自旋操作达到这个转数但互

斥量仍未被释放时此线程将被挂起。默认值为30

 

innodb_table_locks   # InnoDB在存储引擎级别支持行级锁,而MySQL在服务器级别还支持使用表级锁。

此变量则正是用来定义InnoDB是否在其内部支持使用MySQL表级锁

 

innodb_thread_concurrency   # 设定InnoDB可在其内部并发运行的操作系统线程数量上限

innodb_thread_sleep_delay   # 设定InnoDB线程在加入InnoDB队列之前的睡眠时长,单位是毫秒,默认值为10000。0值表示禁止睡眠而直接加入队列

innodb_use_native_aio    # 设定InnoDB是否使用Linux的异步I/O子系统,因此,其仅应用于Linux系统平台,且MySQL启动后不能更改其值

innodb_use_sys_malloc   # 设定InnoDB使用操作系统的(ON)还是自有的(OFF)内存分配器。默认值为ON

innodb_version   # InnoDB存储引擎的版本号,只读变量。 

innodb_write_io_threads   # 设定InnoDB用于完成写操作的I/O线程数量,默认为4个。

 

interactive_timeout    # 交互式链接的链接超时时间

join_buffer_size    # join 缓存大小

 

keep_files_on_create     # 此项默认值为OFF。创建MyISAM类型的表时,mysqld会在数据目录中为其创建一个.MYD文件和一个.MYI文件,如果数据目录中已经存在一个同名的文件,

默认设定为覆盖操作,当设定此变量为OFF时,则会返回一个错误信息

http://www.tuicool.com/articles/EvY3ee

 

key_buffer_size      # myisam  键值缓存大小

key_cache_age_threshold    # 控制Hot Area中的Cache Block何时该被降级到Warm Area中。系统默认值为300,

最小可以设置为100。值越小,被降级的可能性越大

http://www.tuicool.com/articles/EvY3ee

 

key_cache_block_size      # 键缓存块大小

key_cache_division_limit     # 键值链中hotArea和WarmArea的分界点

http://www.tuicool.com/articles/EvY3ee

 

large_files_support    # mysqld是否在编译时的编译选项中指定了支持大文件  http://www.tuicool.com/articles/EvY3ee

large_page_size  #  Linux平台上专用的参数,用于设定mysqld使用的大内存页的大小,一般为4MB,在其它平台上此参数的值为0,即为禁用

large_pages   # Linux平台上专用的参数,用于设定mysqld是否支持使用大内存页。使用大内存而可以提高TLB的命中率,进行提高系统性能

 

lc_message    # 错误信息的区域设定(即语言区域),mysqld将此值转换为语言名称,并结合lc_messages_dir参数指定的路径中的区域相关的语言文件来返回错误信息

lc_messages_dir 

lc_time_name    # 设定基于语言区域来显示日、月及其简写方式等日期信息的语言区域,其值如en_US等,但与系统的locale无关

license 

local_infile    # 设定mysqld是否支持使用LOAD DATA INFILE语句。默认为ON

 

lock_wait_timeout  :锁请求超时阀值(在服务器层实现的,因此对所有的存储引擎都是生效的)

 

log_bin   # 开启二进制日志

log_bin_trust_function_creators   # 此参数仅在启用二进制日志时有效,用于控制创建存储函数时如果会导致不安全的事件记录二进制日志条件下是否禁止创建存储函数

log_error     # 错误日志路径

log_output    # 慢查询日志,查询日志的输出格式

log_queries_not_using_indexes   # 没有使用索引的查询是否记入慢查询日志文件

log_slave_updates     # 主从复制中,主服务器上的sql是否写入从服务器的二进制日志

log_slow_queries   # 开启慢查询 

log_warnings   # 设定是否将警告信息记录进错误日志。默认设定为1,表示启用;可以将其设置为0以禁用;

而其值为大于1的数值时表示将新发起连接时产生的“失败的连接”和“拒绝访问”类的错误信息也记录进错误日志。

long_query_time    # 慢查询阀值

 

low_priority_updates    # 设定是否降低更新操作的优先级,仅对只支持表级别锁的存储引擎有效,如MyISAM、MEMORY或MERGE。

其值为1则表示所有的INSERT、UPDATE、DELETE或LOCK TABLE WRITE语句只能在没有等待执行的SELECT或LOCK TABLE READ语句时才能执行

 

lower_case_file_system    # 用于描述数据目录所在的文件系统是否区分文件名称字符大小写,OFF表示区分大小写,ON表示不区分大小写

lower_case_table_names    #  表明是否区分大小写

 

max_allowed_packet     # 设定单个报文或任何中间字符串(intermediate string)的最大长度,单位是字节

max_binlog_cache_size     # 事务性存储引擎二进制日志的最大缓存值

max_binlog_size     #  单个二进制文件的最大大小

max_binlog_stmt_cache_size     # 非事务性存储引擎的二进制日志的最大缓存值

max_connect_errors    # 设定客户端连接至mysqld时的最大错误尝试次数

max_connections      #  设定mysqld允许客户端同时发起的最大并发连接数

max_delayed_threads    # 设定为INSERT DELAYED语句所能够启动的最大线程数。如果当前相关的线程数目已经达到此参数所设定的值,

后续的INSERT DELAYED语句将无视其DELAYED属性

 

max_error_count      # 设定为SHOW ERRORS或SHOW WARNINGS语句所保留的关于错误、警告或注意信息条目的最大数

max_heap_table_size    # 设定每个用户创建的MEMORY表所能够使用的最大内存空间

max_insert_delayed_threads    # max_delayed_threads的同义词

max_join_size     # 设定SELECT语句执行时所能够检查的行数(单表)或行组合(多表查询)的最大值

max_length_for_sort_data    # ilesort算法改进版所能够使用的字段最大长度值http://www.tuicool.com/articles/EvY3ee

max_long_data_size     # 设定可以由mysql_stmt_send_long_data()这个C API函数所传送的参数值的最大长度,如果没有在mysqld启动时设定,

其默认为max_allowed_packet变量的值。MySQL 5.6已经弃用此变量

 

max_prepared_stmt_count    # 设定mysqld所允许的所有连接会话中执行的准备语句的总数  http://www.tuicool.com/articles/EvY3ee

max_relay_log_size    # 设定从服务器上中继日志的体积上限,到达此限度时其会自动进行中继日志滚动

max_seeks_for_key     # 设定基于某key执行查询时所允许的最大查找次数  http://www.tuicool.com/articles/EvY3ee

max_sort_length     # 设定mysqld执行数值排序时所使用的字节数,剩余的将被忽略

max_sp_recursion_depth     # 默认值0,最大值255倍,任何给定的存储过程可以递归调用的数量

max_tmp_tables      # 一个客户能同时保持打开的临时表的最大数量。  http://www.bitscn.com/network/hack/200607/29802.html

max_user_connections    # 单个账号的最大链接数

max_write_lock_count     # mysqld已施加的写锁个数达到此参数值指定的个数时,将允许处理一些挂起的读请求。其最小值为1,最大值取决于平台字长

metadata_locks_cache_size     # 设定mysqld元数据锁缓存的上限。此缓存可用来避免创建或销毁同步对象(synchronization object),

这对于此类操作代价较高的操作系统(如Windows XP)来说尤为有用

 

min_examined_row_limit    # 所检查的行数低于此参数设定的数值的查询操作将不被记入慢查询日志

 

multi_range_count  #  不知道  

 

myisam_data_pointer_size  # 默认指针大小,单位是字节,当未指定MAX_ROWS选项时,

CREATE TABLE使用该变量创建MyISAM表。该变量不能小于2或大于7,指定myisam表的最大大小

 

myisam_max_sort_file_size   # 重建MyISAM索引(在REPAIR TABLE、ALTER TABLE或LOAD DATA INFILE过程中)时,允许MySQL使用的临时文件的最大空间大小。

如果文件的大小超过该值,则使用键值缓存创建索引,要慢得多。该值的单位为字节。

 

myisam_mmap_size   # 设定基于内存映射压缩MyISAM文件时可以使用的内存上限

myisam_recover_options    # 用于保存mysqld命令行选项--myisam-revover-options的值http://www.tuicool.com/articles/EvY3ee

myisam_repair_threads    # 在通过排序修复过程中为MyISAM表创建索引的线程的个数,默认为1;如果给定大于1的值,

则可以启动多个并行创建索引的线程(每个索引只能由一个线程创建)

 

myisam_sort_buffer_size   # 在REPAIR TABLE过程中,或通过CREATE INDEX/ALTER TABLE

为MyISAM表添加索引时为了对索引排序所能够使用的缓冲空间大小

 

myisam_stats_method   # 定义在为MyISAM表收集索引分布相关的统计信息时处理NULL值的方式

myisam_use_mmap      # 在读写MyISAM表时能否使用内存映射 

 

named_pipe          # (只适用Windows)说明服务器是否支持命名管道连接。

net_buffer_length    # 在查询之间将通信缓冲区重设为该值。一般情况不应改变,但如果内存很小,可以将它设置为期望的客户端发送的SQL语句的长度。

如果语句超出该长度,缓冲区自动扩大,直到max_allowed_packet字节。

 

net_read_timeout    # 设定mysqld等待从客户端接收更多数据的超时时长,默认值为30

net_retry_count     # 如果某个通信端口的读操作中断了,在放弃前重试多次

net_write_timeout      # 设定mysqld等待向客户端传输数据的超时时长,默认值为60(数据未及时发送或接送造成的)

new    # 用于MySQL 4.0中以启用支持MySQL 4.1版本上的某些新特性的能力,但仍然可以保持向后兼容。在MySQL 5.5无须设置,故其值为OFF

old    # 用于定义兼容老版本MySQL的变量,默认是禁用的,但可以在mysqld启动时将其启用以兼容较老的MySQL版本。

old_alter_table    # 在线DDL的相关设置 http://blog.itpub.net/26515977/viewspace-1208250/

 

old_passwords    # old-passwords选项的目的是当服务器生成长密码哈希值时,允许维持同4.1之前的客户端的向后兼容。

http://ju.outofmemory.cn/entry/67116

 

open_files_limit    # 操作系统允许mysqld打开的文件的数量。这是系统允许的实际值,可能与你在启动选项中赋给mysqld的值不同。

若在系统中MySQL不能更改打开的文件的数量,则该值为0

 

# 查询优化相关:

optimizer_prune_level    # 默认值1;控制在查询优化过程中采用启发式http://my.oschina.net/victorli/blog/10563

optimizer_search_depth    #  查询优化器进行的搜索的最大深度  ***2014/09/74997.html

optimizer_switch  #  优化器设置 选项index_merge=on,index_merge_union=on,index_merge_sort_union=on,

index_merge_intersection=on,engine_condition_pushdown=on

 

# performance_schema 相关,很少用到

performance_schema  

performance_schema_events_waits_history_long_size 

performance_schema_events_waits_history_size 

performance_schema_max_cond_classes 

performance_schema_max_cond_instances 

performance_schema_max_file_classes 

performance_schema_max_file_handles 

performance_schema_max_file_instances 

performance_schema_max_mutex_classes 

performance_schema_max_mutex_instances  

performance_schema_max_rwlock_classes 

performance_schema_max_rwlock_instances 

performance_schema_max_table_handles  

performance_schema_max_table_instances 

performance_schema_max_thread_classes 

performance_schema_max_thread_instances 

 

pid_file   #  pid文件的位置  

plugin_dir  # 插件的目录 

port3306   #  端口号 

preload_buffer_size    # 重载索引时分配的缓冲区大小

profiling  

 

profiling_history_size 

protocol_version 

 

query_alloc_block_size  # 为查询分析和执行过程中创建的对象分配的内存块大小。如果内存分段过程中遇到问题,将该变量增加一位会有帮助。

query_cache_limit     # query_cache_limit指定单个查询能够使用的缓冲区大小,缺省为1M

query_cache_min_res_unit   # 设置Query Cache中每次分配内存的最小空间大小,也就是每个Query的缓存块的最小占用的内存空间大小

内存块分配的最小单元非常重要,设置过大可能增加内存碎片的概率发生,太小又可能增加内存分配的消耗,为此在系统平稳运行一个阶段性后

http://ju.outofmemory.cn/entry/67410

 

query_cache_size    # 设置Query Cache所使用的内存大小,默认是0 http://ju.outofmemory.cn/entry/67410

query_cache_type    # 查询缓存类型

query_cache_wlock_invalidate    # 控制当写锁定发生在表上的时候,是否先失效该表相关的Query Cache,如果设置为1(true),

则在写锁定的同时将失效该表相关的Query Cache,如果设置为0(False)则在锁定时仍然允许读取该表相关的Query Cache

 

query_prealloc_size8192   # 用于查询分析和执行的固定缓冲区的大小。在查询之间该缓冲区不释放。如果你执行复杂查询,

分配更大的query_prealloc_size值可以帮助提高性能,因为它可以降低查询过程中服务器分配内存的需求。

http://www.mysqlpub.com/onlinemanual/doc/refman/5.1/zh/database-administration.html

 

 

range_alloc_block_size      #   # 范围优化时分配的块的大小

 

read_buffer_size      # 每个线程连续扫描时为扫描的每个表分配的缓冲区的大小(字节)。如果进行多次连续扫描,可能需要增加该值, 

 

read_only        # 当变量对复制从服务器设置为ON时,从服务器不允许更新,除非通过从服务器的线程或用户拥有SUPER权限。

可以确保从服务器不接受客户端的更新命令。

 

read_rnd_buffer_size    # 当排序后按排序后的顺序读取行时,则通过该缓冲区读取行,避免搜索硬盘。将该变量设置为较大的值可以大大改进ORDER BY的性能。

但是,这是为每个客户端分配的缓冲区,因此你不应将全局变量设置为较大的值。

 

#  复制相关

relay_log               #  开启中继日志

relay_log_index         # 中继日志索引文件名 

relay_log_info_file     # 中继日志明

relay_log_purge         # 自动清理旧的中继日志数据

relay_log_recovery      # 是否开启中继日志的自我修复功能  http://book.2cto.com/201402/40320.html

relay_log_space_limit   #  单个中继日志的空间大小限制

 

 

report_host 

report_password

report_port 

report_user

rpl_recovery_rank 

 

secure_auth             # 如果用--secure-auth选项启动了MySQL服务器,它将阻塞有旧格式(4.1之前)密码的所有账户所发起的连接。在这种情况下,该变量的值为ON

secure_file_priv

server_id               # 服务器id

shared_memory           # (只用于Windows)服务器是否允许共享内存连接。

shared_memory_base_nam  # (只用于Windows)说明服务器是否允许共享内存连接,并为共享内存设置识别符。当在单台机器上运行多个MySQL实例时很有用。

 

skip_external_locking   # 跳过外部锁定

skip_name_resolve       # 跳过DNS 反向解析

skip_networking         # 禁止网络 链接数据库服务器

skip_show_database      # 防止不具有SHOW DATABASES权限的人们使用SHOW DATABASES语句

slave_compressed_protocol  # 如果主、从服务器均支持,确定是否使用从/主压缩协议

slave_exec_mode   # 是否自动跳过某些错误 http://19370575.blog.hexun.com/80530915_d.html

slave_load_tmpdir       # 从服务器为复制LOAD DATA INFILE语句创建临时文件的目录名

slave_max_allowed_packet  # 在MySQL5.5.26中及以后,这个变量设置从SQL和I / O线程的最大数据包大小,

因此,使用基于行的复制的大更新不会因为更新超过max_allowed_packet导致复制失败

http://blog.csdn.net/heianemo/article/details/8060351

 

slave_net_timeout       #  在从机认为连接中断,中止读,并尝试重新连接之前等待来自主机的更多的数据的秒数。第一次重试在超时之后立即发生。

重试之间的间隔由CHANGE MASTER TO语句的MASTER_CONNECT_RETRY选项控制,

并且尝试重新连接的次数被–master-retry-count选项限制。默认值是3600秒(1小时)。

http://blog.csdn.net/heianemo/article/details/8060351

 

slave_skip_errors       # 跳过的错误号

 

slave_transaction_retries  #   如果复制从SQL线程因为InnoDB死锁或因为事务的执行时间超过InnoDB的innodb_lock_wait_timeout或

NDBCLUSTER的TransactionDeadlockDetectionTimeout或TransactionInactiveTimeout而执行事务失败,在报错停止前(before stopping with an error),

它会自动重试slave_transaction_retries次。默认值是10。

http://blog.csdn.net/heianemo/article/details/8060351

 

slave_type_conversions # 这个参数在mysql5.5.3 引入,目的是启用row 格式的bin-log 的时候,

如果主从的column 的数据类型不一致,会导致复制失败,mysql5.5.3 之后支持,主库是int 从库是bigint 这种类型的复制,

这个参数的意义就是控制些类型转换容错性。

如果从库的类型比主库类型大,那么复制没有问题的。

如果从库类型比主库类型小,比如从int 复制到tinyint 这个参数就会起作用。 

http://blog.itpub.net/133735/viewspace-756696/

 

slow_launch_time      #线程创建耗时阀值,如果某个线程的创建时间超过这个值(s) ,  状态变量Slow_launch_threads 就加1  

slow_query_log        # 开启慢查询日志

slow_query_log_file   #  慢查询日志文件名

socket                # Unix中用于连接的套接字文件。默认情况下,文件名为/tmp/mysqlmanager.sock。

sort_buffer_size      # 排序缓存大小 一般情况下设置为1M ,最大不要超过2  http://bbs.chinaunix.net/thread-1805254-1-1.html

sql_auto_is_null      #  如果被设置为 1 ( 默认值 ) ,则可以通过以下语句来获得某个包含 AUTO_INCREMENT 类型字段的表最后一条插入的记录:

sql_big_selects       # 如果设置为 0 ,则 MySQL 会放弃那些可能会耗费很长时间(是指那些通过优化程序

估计到需要检查的行数会超过 max_join_size 设定值的情况)的 SELECT 语句http://blog.sina.com.cn/s/blog_53b95aec0101fvbv.html

 

sql_big_tables        #  旧版本中使用,    http://dp.imysql.com:8080/node/13

sql_buffer_result     # SQL_BUFFER_RESULT 强制将 SELECT 语句查询的结果放在临时表中。这可以让 MySQL 尽快释放加载表上的锁,

同时还有助于改善向客户端发送结果需要较长时间的情况

http://dp.imysql.com:8080/node/13

 

sql_log_bin          # 如果设置为 0,就不再记录任何二进制日志了。必须要有 SUPER (超级) 权限方可修改它的值

sql_log_off          # 如果设置为 1 ,系统将不记录任何普通的查询日志。必须要有 SUPER (超级) 权限方可修改它的值。

sql_low_priority_updates   # 如果设置为1,所有INSERT、UPDATE、DELETE和LOCK TABLE WRITE语句将等待直到受影响的表没有挂起的SELECT或LOCK TABLE READ。

http://www.mysqlpub.com/onlinemanual/doc/refman/5.1/zh/database-administration.html

 

sql_max_join_size    #   和 max_join_size  同义

 

sql_modeSTRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION   # 当前的服务器SQL模式,可以动态设置

http://www.mysqlpub.com/onlinemanual/doc/refman/5.1/zh/database-administration.html

 

sql_notes  # 若是1/on,warning_count数会增加且服务器会记录警告内容,否者不会

http://relay.programfan.info/mysql/146.jsp

 

sql_quote_show_create   #  sql_quote_show_create,有两个值(1,0),默认是1,表示表名和列名会用``包着的。

这个服务器参数只可以在session级别设置,不支持global设置的(不支持my.cnf设置)。

http://bbs.chinaunix.net/thread-3709996-1-1.html

 

sql_safe_updates     #  安全模式开关, 在安全模式下,不能直接操作表中的数据。

sql_select_limit     # 它决定了执行 SELECT 语句时返回的最大记录数。新连接的默认设置值是“ unlimited (无限)”。

如果它被改变了,可以设定重新设 SQL_SELECT_LIMIT 的值定为 DEFAULT 以将它恢复为默认值。

当 SELECT 语句中有 LIMIT 分句时, LIMIT 优先级高于 SQL_SELECT_LIMIT 的值。

 

sql_slave_skip_counter  #  当slave由于某些错误而导致复制失败的时候,可以使用sql_slave_skip_counter 跳过这个sql语句

 

sql_warnings   # 它决定了在执行单行 INSERT 语句(译者注:一次只有一个 INSERT 语句)发生错误的情况下,是否要报告错误信息。

它的默认值是 0 ,如果设置为 1 ,则会在发生错误时报告错误信息

 

ssl_ca

ssl_capath

ssl_cert

ssl_cipher

ssl_key

 

storage_engine    # 

stored_program_cache

 

sync_binlog   # 每次写入时是否都将binlog与硬盘同步    http://blog.sina.com.cn/s/blog_4d8a2c970100f531.html

sync_frm      # 默认为true时,任何非临时表被创建。frm文件同步到磁盘

 

sync_master_info  # 默认为0,如果大于0,每sync_master_info事件 从机同步master.info文件到磁盘后,

sync_relay_log # 默认值0,如果大于0时,服务器中继日志同步到磁盘后,每一个sync_relay_log写入中继日志

sync_relay_log_info # 默认值0,如果大于0,从机同步继电器log.info文件到磁盘后,每sync_relay_log_info交易

system_time_zone

 

table_definition_cache    # 默认400,范围400-524288;可以缓存表定义,它不使用文件描述符

table_open_cache          # 默认400;范围400-524288;为所有线程打开表的数量,它需要的文件描述符。

thread_cache_size         # 线程缓存大小

thread_concurrency        # 线程并发数   http://ju.outofmemory.cn/entry/47334

thread_handling           #   http://blog.csdn.net/z1988316/article/details/7335937

thread_stack              # 每个线程的堆栈大小。用crash-me测试检测出的许多限制取决于该值。 默认值足够大,可以满足普通操作

 

time_format               # 时间格式

time_zone                 #  当前的时区。初使值是'SYSTEM'(使用system_time_zone的值),但可以用--default-time-zone选项在服务器启动时显式指定。

timed_mutexes             # 默认关闭??,当启用时,os_wait_times表示,在操作系统中花费的时间等待。

tmp_table_size20971520    # 内存临时表的大小

tmpdir                    # 缺省为/ tmp,用于创建临时文件的目录的路径。

 

transaction_alloc_block_size   # 为保存将保存到二进制日志中的事务的查询而分配的内存块的大小(字节)。

 

transaction_prealloc_size      # 为transaction_alloc_blocks分配的固定缓冲区的大小(字节),在两次查询之间不会释放。使该值足够大,

将所有查询固定到一个事务中,可以避免多次malloc()调用。

 

tx_isolation                   # mysql 默认的隔离级别

unique_checks                  #  是否开启唯一性检查 http://www.dedecms.com/knowledge/data-base/mysql/2012/0819/7459.html

 

updatable_views_with_limit     # 该变量控制如果更新包含LIMIT子句,是否可以在当前表中使用不包含主关键字的视图进行更新

http://relay.programfan.info/mysql/146.jsp

 

version                        # mysql 版本

version_comment                # configure脚本有一个--with-comment选项,当构建MySQL时可以进行注释。该变量包含注释值。

version_compile_machine        # MySQL构建的机器或架构的类型

version_compile_os             #  MySQL构建的操作系统的类型

wait_timeout                  #  非交互式链接的超时设置

 

 

mysql 手册:

http://www.mysqlpub.com/onlinemanual/doc/refman/5.1/zh/database-administration.html

innodb并发相关:

http://blog.itpub.net/15480802/viewspace-1067518/

innodb核心参数解释:

http://www.360doc.com/content/13/1120/17/13159363_330819746.shtml

参数解释手册:

http://www.tuicool.com/articles/EvY3ee

http://www.tuicool.com/articles/m2Uvqa

http://www.hicoogle.com/mysql5-5-database-my-cnf-configuration-file-variable-description.html

http://dev.mysql.com/doc/refman/5.6/en/replication-options-binary-log.html#sysvar_binlog_direct_non_transactional_updates

猜你喜欢

转载自cwfmaker.iteye.com/blog/2286890