首页 > 代码库 > mysql   show global variables

mysql   show global variables


以下变量全部来自mysql5.5.40-log 包括该版本的所有变量,

绝大部分变量都是解释的,那些没有解释的变量不是很重要,

不过后期还是会补充上去的。以下变量只有部分经过本人验证,

,没有验证均来自大师的博客.

仅供参考。


1.自增值相关

auto_increment_increment 1   #   增量

auto_increment_offset 1      #  起始值/偏移量

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

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


autocommit ON #   隐式事务自动提交 


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

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

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


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


basedir C:/Program Files/MySQL/MySQL Server 5.5/     #  mysql 的安装目录


big_tables OFF  # 就版本中使用  ,同 sql_big_tables


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


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


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


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


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


character_set_client utf8


character_set_connection utf8


character_set_database utf8


character_set_filesystem binary


character_set_results utf8


character_set_server utf8


character_set_system utf8


character_sets_dir C:\Program Files\MySQL\MySQL Server 5.5\share\charsets\


collation_connection utf8_general_ci


collation_database utf8_general_ci


collation_server utf8_general_ci


completion_type NO_CHAIN  # 是否开启链事务 ,  默认为扁平事务


concurrent_insert AUTO

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

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

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

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

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

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


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


datadir C:\ProgramData\MySQL\MySQL Server 5.5\Data\


date_format %Y-%m-%d


datetime_format %Y-%m-%d %H:%i:%s


default_storage_engine InnoDB   #  默认存储引擎


default_week_format 0


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


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


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


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

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

 

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


engine_condition_pushdown ON  # 该变量适用于NDB


event_scheduler ON


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


flush OFF


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

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

 

foreign_key_checks ON    # 启用外键约束 


#  全文索引相关

ft_boolean_syntax + -><()~*:""&|    # 改变IN BOOLEAN MODE的查询字符,不用重新启动MySQL也不用重建索引。   http://www.cnblogs.com/macula7/archive/2011/05/18/2050525.html                                   

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

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

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

ft_stopword_file (built-in)  # 内建列表


general_log ON    # 查询日志开关


general_log_file C:\ProgramData\MySQL\MySQL Server 5.5\Data\WIN-PAE2H0310VK.log  # 查询日志路径

 

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

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


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


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


have_dynamic_loading YES


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


have_innodb YES   # 是否支持innodb


have_ndbcluster NO    # 是否支持ndb。


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


have_partitioning YES   #  是否支持分区


have_profiling YES


have_query_cache YES  #  是否支持查询缓存


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


have_ssl DISABLED


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


hostname WIN-PAE2H0310VK  


ignore_builtin_innodb OFF


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

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

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

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


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

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

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


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


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


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


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


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

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

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

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

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


innodb_buffer_pool_size 268435456  # innodb内存缓冲池大小


innodb_change_buffering all  # 设定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 ON  # InnoDB能够使用校验和(checksum)来验正从磁盘读取的所有页面数据的完整性,从而提高对硬件或数据文件损坏的容错能力。

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

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

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


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

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


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

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

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

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


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


innodb_data_home_dir # innodb 数据目录


innodb_doublewrite ON   # 开启二次写功能


innodb_fast_shutdown 1  # 在关闭时,参数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 Antelope  # 设定新建InnoDB表的文件格式。其可接受的参数有Antelope和Barracuda,

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

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

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


innodb_file_format_check ON  # 用于设定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 Antelope #在MySQL服务启动时,InnoDB会将变量innodb_file_format_max的值设置为共享表空间的文件格式标签(比如,Antelope或Barracuda)。

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

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


innodb_file_per_table ON  # 独立表空间


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

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

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

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


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


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

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

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


innodb_force_recovery 0  # 设定InnoDB的故障恢复模式 

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


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


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

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


innodb_lock_wait_timeout 50  # innodb 锁等待超时


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


innodb_log_buffer_size 16777216  #  日志缓冲区大小


innodb_log_file_size 268435456  # 日志文件大小


innodb_log_files_in_group 2   #  控制日志文件数量


innodb_log_group_home_dir .\    # 日志文件目录 ,


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

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


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

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

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


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


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


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

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

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


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


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


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

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

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

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

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


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

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

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

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


innodb_random_read_ahead OFF


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

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

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


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


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


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

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


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


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


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


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

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


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


innodb_strict_mode OFF


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


innodb_sync_spin_loops 30 # 设定一个线程在等待InnoDB释放某个互斥量(mutex)之前自旋的转数,当自旋操作达到这个转数但互斥量仍未被释放时此线程将被挂起。默认值为30


innodb_table_locks ON  # InnoDB在存储引擎级别支持行级锁,而MySQL在服务器级别还支持使用表级锁。此变量则正是用来定义InnoDB是否在其内部支持使用MySQL表级锁


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


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


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


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


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


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


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


join_buffer_size 131072  # join 缓存大小


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

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

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


key_buffer_size 134217728    # myisam  键值缓存大小


key_cache_age_threshold 300 # 控制Hot Area中的Cache Block何时该被降级到Warm Area中。系统默认值为300,最小可以设置为100。值越小,被降级的可能性越大

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


key_cache_block_size 1024    # 键缓存块大小


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

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


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


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


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


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


lc_messages_dir C:\Program Files\MySQL\MySQL Server 5.5\share\


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


license GPL


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


lock_wait_timeout 31536000


log ON


log_bin ON  # 开启二进制日志


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


log_error C:\ProgramData\MySQL\MySQL Server 5.5\Data\WIN-PAE2H0310VK.err   # 错误日志路径


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


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


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


log_slow_queries ON  # 开启慢查询

 

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

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


long_query_time 3.000000  # 慢查询阀值


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

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


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


lower_case_table_names 1 #  表明是否区分大小写


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


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


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


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


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


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


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

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


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


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


max_insert_delayed_threads 20  # max_delayed_threads的同义词


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


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


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

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


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


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


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


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


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


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


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


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


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

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


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


multi_range_count 256


myisam_data_pointer_size 6  # 默认指针大小,单位是字节,当未指定MAX_ROWS选项时,CREATE TABLE使用该变量创建MyISAM表。该变量不能小于2或大于7


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

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


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


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


myisam_repair_threads 1  # 在通过排序修复过程中为MyISAM表创建索引的线程的个数,默认为1;如果给定大于1的值,则可以启动多个并行创建索引的线程(每个索引只能由一个线程创建)


myisam_sort_buffer_size 20971520  # 在REPAIR TABLE过程中,或通过CREATE INDEX/ALTER TABLE为MyISAM表添加索引时为了对索引排序所能够使用的缓冲空间大小


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


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


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


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

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


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


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


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


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


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


old_alter_table OFF


old_passwords OFF


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


optimizer_prune_level 1  # 默认值1;控制在查询优化过程中采用启发式


optimizer_search_depth 62 #  查询优化器进行的搜索的最大深度  ***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 OFF

performance_schema_events_waits_history_long_size 10000

performance_schema_events_waits_history_size 10

performance_schema_max_cond_classes 80

performance_schema_max_cond_instances 1000

performance_schema_max_file_classes 50

performance_schema_max_file_handles 32768

performance_schema_max_file_instances 10000

performance_schema_max_mutex_classes 200

performance_schema_max_mutex_instances 1000000

performance_schema_max_rwlock_classes 30

performance_schema_max_rwlock_instances 1000000

performance_schema_max_table_handles 100000

performance_schema_max_table_instances 50000

performance_schema_max_thread_classes 50

performance_schema_max_thread_instances 1000

pid_file C:\ProgramData\MySQL\MySQL Server 5.5\Data\WIN-PAE2H0310VK.pid

plugin_dir C:\Program Files\MySQL\MySQL Server 5.5\lib\plugin\

port 3306


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


profiling OFF


profiling_history_size 15


protocol_version 10


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


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


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

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

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


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


query_cache_type OFF  # 查询缓存类型


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

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


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

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

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


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


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

 

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

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


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

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


#  复制相关

relay_log  #  k 开启中继日志

relay_log_index  # 中继日志索引文件名 

relay_log_info_file relay-log.info  # 中继日志明

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

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

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



report_host  

report_password

report_port 3306

report_user

rpl_recovery_rank 0


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


secure_file_priv


server_id 110   # 服务器id


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


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


skip_external_locking ON  #   跳过外部锁定


skip_name_resolve OFF   # 跳过DNS 反向解析


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


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


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


slave_exec_mode STRICT


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


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

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

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


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

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

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

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


slave_skip_errors 1104  # 跳过的错误号


slave_transaction_retries 10  #   如果复制从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 2  #线程创建耗时阀值,如果某个线程的创建时间超过这个值(s) ,  状态变量Slow_launch_threads 就加1  


slow_query_log ON   # 开启慢查询日志


slow_query_log_file SlowqueryLog   #  慢查询日志文件名


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


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


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


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

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


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


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

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

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


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


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


sql_low_priority_updates OFF   # 如果设置为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 18446744073709551615   #   和 max_join_size  同义


sql_mode STRICT_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 ON


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

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

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


sql_safe_updates OFF  #  安全模式开关,


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

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

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


sql_slave_skip_counter 0  #  当slave由于某些错误而导致复制失败的时候,可以使用sql_slave_skip_counter 

跳过这个sql语句


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

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


ssl_ca


ssl_capath


ssl_cert


ssl_cipher


ssl_key


storage_engine InnoDB   # 


stored_program_cache 256


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


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


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


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


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


system_time_zone


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


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


thread_cache_size 64  #   线程缓存大小


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


thread_handling one-thread-per-connection   #   http://blog.csdn.net/z1988316/article/details/7335937


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


time_format %H:%i:%s     # 时间格式


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


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


tmp_table_size 20971520  # 内存临时表的大小


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


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


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

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


tx_isolation REPEATABLE-READ   # mysql 默认的隔离级别


unique_checks ON


updatable_views_with_limit YES


version 5.5.40-log  # mysql 版本


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


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


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


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


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


本文出自 “SQLServer MySQL” 博客,请务必保留此出处http://dwchaoyue.blog.51cto.com/2826417/1599394

mysql   show global variables