`

MySQL Variable解读

 
阅读更多

说明:具体参数还是要很对应版本对应,这是dba必须要关注的,新版本的参数名或值可能有修改。

 

 


 


1.autocommit

    session级别,可以动态更改。

    控制mysql是否在每次执行DML之后自动commit,默认自动开启。(1或on)


 

2.auto_increment_increment

    session/global级别,可动态更改。

    设置自动增长列每次增长长度。默认1.


 

3.auto_increment_offset

    session/global级别,可动态更改。

    设置自动增长列起始位置,默认1

 


 

4.automatic_sp_privileges

    global级别,可动态更改。

    控制procedure和function的创建者创建之后是否自动赋上执行、修改和删除的权限。默认1


 

5.back_log

    global级别,不可动态更改。

    要求 MySQL 能有的连接数量。当主要MySQL线程在一个很短时间内得到非常多的连接请求,这就起作用,然后主线程花些时间(尽管很       短)检查连接并且启动一个新线程。

    back_log值指出在MySQL暂时停止回答新请求之前的短时间内多少个请求可以被存在堆栈中。当mysql来不及处理瞬间大量请求的时         候,会将一些连接放入一个临时的堆栈中,back_log就是这个堆栈的大小。只有如果期望在一个短时间内有很多连         接,你需要增加     它,换句话说,这值对到来的TCP/IP连接的侦听队列的大小。你的操作系统在这个队列大小上有它自己的限制。 但是设       定                 back_log高于你的操作系统的限制将是无效的。
    当你观察你的主机进程列表,发现大量 264084 | unauthenticated user | xxx.xxx.xxx.xxx | NULL | Connect | NULL | login |       NULL 的待连接进程时,就要加大 back_log 的值了。默认数值是50。


 

6.binlog_cache_size

    global级别,可动态更改。

    设置mysql二进制日志的缓冲区大小,用于存放将要被写入binlog的sql语句及事务相关信息。默认32K,一般设置为2M,根据情况而         定。该缓冲区是每个连接线程独享的,所以设置过大可能造成内存占用过多。当缓冲区不足的时候,mysql会暂时将缓冲区数据写入磁盘       的临时空间,可以通过binlog_cache_disk_use状态变量判断是否有写入磁盘的binlog缓冲信息。


 

7.binlog_format(5.1起)

    session/global级别,可动态更改。

    设置二进制日志记录格式:ROW,STATEMENT,MIXED三个选项。5.1.12到5.1.28默认设置是MIXED,其他版本默认是STATEMENT。

    ROW:行记录。以实际改变的行为记录单位,每行更改都被单独记录为一个变更事件。

    STATEMENT:语句式记录。每个sql语句被记录为一个事件。

    MIXED:混合式,上两者的结合。


 

8.bulk_insert_buffer_size

    session/global级别,可动态更改。

    针对myisam引擎中的bulk insert操作时所使用的缓冲区,主要是insert。。select;insert。。values()、()及LOAD DATA INFILE     之类的操作,默认8M,最大4G。


 

9.completion_type

    session/global级别,可动态更改。

    控制事务结束类型,值0、1、2,默认0

    0:commit 和 rollback不受影响。

    1:commit 和 rollback等同于commit and chain 和 rollback and chain。新事务用于刚刚结束的事务相同的间隔等级立即启动。

    2:commit 和 rollback等同于commit release 和 rollback release。事务终止后,服务器断开。


 

10.concurrent_insert

    global级别,可动态更改。

    控制是否允许MYISAM表select操作与insert操作不互补相锁定。值有0、1、2。默认1

    0:不允许

    1:但数据库中不存在因为删除产生的空洞,允许插入

    2:不管是否有空洞,均插入数据文件尾部。


 

11.delay_key_write

    global级别,可动态更改。

    控制是否允许myisam索引数据延迟刷新到硬盘。允许延迟写入的意思是指索引被更新后,如果不使用flush table命令索引缓存信息在         table被close之前不会自动刷新到磁盘。如果开启,需打开mysql启动时自动检测的所有myisam表的功能(设置--myisam-recover)。

可以被全局配置,也可也为个别表单独配置。

使用delay_key_write创建的myisam表,索引被更新后不会立即写入磁盘,而是修改内存缓冲区中的数据。在清理缓冲区或者关闭是会持久到硬盘。对于数据经常改变,使用频繁的表这种模式提高了表的处理性能,但是服务器或系统崩溃,索引肯定会损坏,这时需要修复它。

    值有:off、on、all。 默认on

    off:禁止延迟写入。

    on:允许创建是明确指定DELAY_KEY_WRITE参数的延迟希尔和表的索引延迟写入。

    all:所有myisam表索引均被延迟写入。


 

 

12.delayed_insert_limit

    global级别,可动态设置。

    设置使用insert delayed 命令一次批量插入的记录数量。但达到设置大小时,mysql会检测是否有正在处于等待的select,如果有会允       许select先执行结束,然后再继续insert delayed。范围是1-4G,默认100.


 

13.delayed_insert_timeout

    global级别,可动态更改。

    设置一个insert delayed语句等待insert 的最大时间长度,默认300秒。


 

14.delayed_queue_size

    global级别,可动态更改

    设置为insert delayed操作预分配一个多少行记录的队列。该队列占满后,必须等待mysql处理完所插入的数据后才能接受新的insert       delayed 插入。范围是1-4G,默认1000。


 

15.div_precision_increment

    session/global级别,可动态更改

    控制 “/” 操作运算能够增加的有效位数。设置范围0至30,默认4。


 

16.event_scheduler(5.1.6起)

    global级别,可部分动态更改   

    控制mysql定时任务管理器的开关以及禁用。值有:on、off或disabled,默认off

    on:定时任务管理器线程正常运行

    off:定时任务管理器线程停止运行

    disabled:禁用定时任务管理功能


 

17.expire_logs_days

    global级别,可动态更改

    设置二进制日志过期自动移除的时间,当达到设定的最大保留期限,mysql会自动删除过期的二进制日志。设置范围0-99,默认0即永不过期。


 

18.flush

    global级别,可动态更改

    控制mysql是否在每条sql语句执行之后都进行磁盘刷新操作,默认关闭。


 

19.flush_time

    global级别,可动态更改

    设置mysql每隔 设定的 秒数进行一次flush tables操作,关闭所有table,强行刷新缓冲区数据到磁盘,释放系统资源。设置范围0-1800。默认0,即不刷新。


 

20.ft_boolean_syntax

    global级别,可动态更改

    使用 in boolean mode 执行的布尔全文索引支持的操作符系列。


 

21.ft_max_word_len

    global级别,可动态更改

    全文索引最大单词长度,最小10,无上限


 

22.ft_min_word_len

    global级别,可动态更改

    全文索引最小单词长度,最小1,默认4


 

23.ft_query_expansion_limit

    global级别,不可动态更改。

    使用with query expansion 进行全文索引的最大匹配数。范围是0-1000,默认20。


 

24.ft_stopword_file

    global级别,不可动态更改。

    用于读取全文索引搜索的停止字清单的文件。默认是myisam/ft_static.c


 

25.general_log

    global级别,可动态更改。

    设置是否记录mysql中执行的所有query,默认off(0)。


 

26.general_log_file

    global级别,可动态更改。

    设置是否记录mysql中执行的所有query的日志文件名,默认hostname.log


 

27.group_concat_max_len

    session/global级别,可动态更改。

    允许的group_concat()函数结果的最大长度,默认1024,最小4,无明确上限。


 

28.init_connect

    global级别,可动态更改。

    设置mysql在每个连接连上来之后执行任何请求之前自动执行的sql语句,例如:set global init_connect=‘set autocommit=0’;

 


 

 

29.init_file

    global级别,不可动态更改。

    设置服务器启动后自动运行的sql脚本文件,如设置多个key_buffer,预加载某个myisam表的索引进入key buffer等。


 

30.init_slave

    global级别,可动态更改。

    类似init_connect,设置在slave端的sql线程每次启动之前被执行的sql。


 

31.innodb_adaptive_hash_index(5.1.24之后)

    global级别,不可更改。

    控制Innodb是否会在内存中自动为某些索引Build Hash表加速索引的查找。


 

32.innodb_additional_mem_pool_size

    global级别,不可动态更改。

    设置Innodb存放数据库字典信息的Buffer大小。一般建议8MB到16M(除非表数量非常大),默认1M


 

 

33.innodb_autoextend_increment

    global级别,可动态更改。

    控制Innodb的自动扩展表空间每次扩展的大小,单位是M,默认8M


 

34.innodb_buffer_pool_size

     global级别,不可动态更改。

     设置Innodb数据和索引内存缓存空间大小。


 

35.innodb_checksums

    global级别,不可动态更改。

    设置Innodb从磁盘读取数据快的时候是否进行checksum校验。默认ON,可以在启动设置为OFF。


 

36.innodb_commit_concurrency

    global级别,可动态更改。

    设置Innodb在同一时刻可以进行事务提交操作的并非数目,默认0,即不作任何限制。


 

37.innodb_concurrency_tickets

    global级别,可动态更改。

    控制一个并发线程在Innodb并发控制允许的情况下,能够自由进行处理的次数,一旦处理次数用完,该线程必须再次重新申请新的free tickets。默认500


 

38.innodb_doublewrite

     global级别,不可动态更改。

     设置是否开启Innodb做checkpoint时Buffer刷新的double write机制,默认为开启。


 

39.innodb_fast_shutdown

    global级别,可动态更改。

    设置mysql server在关闭的时候处理Innodb存储引擎的方式,是直接快速中断所有线程,还是等待相关事务处理结束后再关闭。可设置0,1,2.

    0:最安全的关闭方式,会将缓存中的所有信息全部刷新到磁盘,且合并所有多版本数据信息,然后关闭

    1:Innodb在关闭之前不会进行任何刷新操作

    2:在关闭之前会刷新Log信息到磁盘,保证不会丢失事务。


 

40.innodb_file_io_threads

    global级别,不可动态更改。

    Innodb并发的IO处理线程数目,在Linux/Unix平台下,Innodb不会使用该参数设置的值而全部使用默认4,win平台下可以适当加大该值。


 

41.innodb_file_per_table

    global级别,不可动态更改。

    设置Innodb使用独享表空间,还是共享表空间。1是开启独立表空间。


 

42.innodb_flush_log_at_trx_commit

    global级别,可动态更改。

    innodb的日志提交方式的设置,从log buffer 到 log file的同步。值有0、1、2。默认1

    0:log buffer中的数据 每秒一次 写入到 log file 文件中,且同时会进行文件系统到磁盘的同步操作。但是每个事物的提交commit不会触发任何 log buffer 到 log file 或者文件系统到磁盘 的刷新操作。这种设置最多只会丢失1秒的日志。

    1:在每次提交事务的时候 将 log buffer 刷新到 log file,同时触发文件系统到磁盘的刷新。这种只会丢失一个事务的日志。

    2:每个事务提交,日志缓冲被写到文件,但不对日志文件做到磁盘操作的刷新。此外每秒会有一次文件系统到磁盘的同步操作。

    注:每秒同步一次并不能保证完全准确的发生,还取决于系统的进程调度,所以还受到操作系统的限制。


 

43.innodb_flush_method

    global级别,不可动态更改。

    设置innodb 打开和同步 数据文件以及日志文件的方式,只在Linux和unix系统上有效。

    默认值:fdatasync,即innodb默认通过 fsync() 来刷新数据和日志文件。

    还可以设置为 O_DSYNC 和 O_DIRECT。

    O_DSYNC:系统以O_DSYNC方式打开和刷新日志文件,通过 fsync() 来刷新数据文件。

    O_DIRECT:通过O_DIRECT(Solaris上是direction())打开数据文件,fsync()刷新数据和日志文件。

    概述:此参数 主要影响Innodb在不同平台下进行IO操作调用操作系统IO接口。一般来说,磁盘如果是RAID,建议使用O_DIRECT,可以提供IO,但是如果RAID cache不够的话就需要谨慎了。


 

44.innodb_lock_wait_timeout

    global级别,不可动态更改。

    设置Innodb 事务等待资源的最长时间,当超过时间时 会结束此事务并提升超时,默认50秒。


 

45.innodb_locks_unsafe_for_binlog

    global级别,不可动态更改。

    设置Innodb 间隙锁。默认0, 即允许使用间隙锁。


 

46.innodb_log_buffer_size

    global级别,不可动态更改。

    设置Innodb 存放log 缓冲区的大小,注意是log的缓冲区。默认1M,4M基本满足大部分环境了,此参数不需要设置很大。


 

47.innodb_max_dirty_pages_pct

    global级别,可动态更改。

    设置Innodb buffer pool 中允许脏数据(数据更新后没有及时刷新到磁盘)占整个 buffer pool 数据量的百分比。默认90。


 

48.innodb_open_files

    global级别,不可动态更改。

    设置Innodb最多能打开的 .ibd 文件数,最小10,默认300。


 

49.innodb_thread_concurrency

    global级别,可动态更改。

    Innodb内部并发处理线程数量的最大数。建议为cpu和磁盘个数之和。范围是0-1000。这个mysql版本 对此参数的影响比较大,具体还要看对应文档。


 

50.innodb_thread_sleep_delay

    global级别,可动态更改。

    一个Innodb线程在等待加入Innodb队列之前每次sleep的时间长度,默认10000微妙。


 

51.interactive_timeout

    session/global级别,可动态更改。

    mysql server 端关闭一个非活动状态连接前等待的最常时间。


 

52.join_buffer_size

    session/global级别,可动态更改。

    当join是 all、index、rang、index_merge 时候会使用buffer。参数jion的每一个表都需要一个 join buffer,所以至少2个。并且此缓冲区是每个连接线程独享的。默认128K,5.1.23版本前最大4G,之后可以超过4G,但必须是64位系统。


 

53.keep_files_on_create(5.1.21起)

    session/global级别,可动态更改。

    如果设置为 ON 创建Myisam 同名表时候,会遇到同名的 .MYI  .MYD文件 会返回错误提示。默认 OFF 即直接覆盖。


 

54.key_buffer_size

    global级别,可动态更改。

    设置Myisam 表索引缓冲区的大小,此参数对Myisam影响很大。注意Myisam只缓存索引没有数据。


 

55.key_cache_age_threshold

    global级别,可动态更改。

    设置Cache block 从 Hot Area 降到 Warm Area的限制,控制何时Hot 中的 Cache block何时该被降级到 arm Area。范围是100-4G 默认300,值越小降级可能性越大。


 

56.key_cache_block_size

    global级别,可动态更改

    设置key cache中每个cache block的大小,设置范围512-16384,默认1024,单位bytes,即1K。


 

57.key_cache_division_limit

    global级别,可动态更改

    同样针对key buffer的cache block 中的hot area和warm area两个区域的设置。该参数指定hot与warm在整个key buffer中说占的比值。 


 

58.large_files_support

    global级别,不可动态更改  

    此参数确认mysql server在编译的时候是否已经预设大文件支持的编译选项


 

59.large_pages

    global级别,不可动态更改

    此参数仅适用于linux平台,设置是否支持大的page size,默认不支持。


 

60.large_page_size

    global级别,不可动态更改

    当支持large page的时候,设置large page的大小


 

61.locak_infile

    global级别,可动态更改

    设置是否允许在执行 LOAD DATA INFILE 命令的时候使用客户端的文件,默认 OFF 不允许。


 

62.locked_in_memory

    global级别,不可动态更改

    是否将mysqld使用的所有内存 lock 到物理内存中而不使用虚拟内存(通过 --memlock参数),默认OFF。


 

63.log_outpup

    global级别,可动态更改

    设置general log 和 slow log 的输出方式,可设置为 table、file、none。  默认file 。

    table:日志信息输出到mysql 库下的对应表中(general_log 和 slow_log)。

    file:日志输出信息以文本形式记录到日志文件中。

    none:日志信息不输出。

    注:可设置为“ table,file ”


 

64.log_queries_not_using_indexes(5.1.11起)

    global级别,可动态更改

    设置是否在慢查询日志中记录未使用索引的Query。 


 

65.log_slave_updates

    global级别,不可动态更改

    设置slave 端是否将 Replication过程中 SQL 线程说执行的Query 记录到本地的二进制日志,在级联复制的时候必须设置为ON ,默认OFF。


 

66.log_slow_queries

    global级别,可动态更改

    是否打开慢查询功能,默认OFF。


 

67.log_warnings

    session/global级别,可动态更改。

    是否将warning 信息记录到错误日志中,默认打开。可以设置0和1来关闭和开启。


 

68.long_query_time

    session/global级别,可动态更改。

    设置将一个Query判定为慢查询的时间 长度,默认1秒。从5.1.21开始支持毫秒级别设置。


 

69.low_priority_updates

    session/global级别,可动态更改。

    设置是否降低写请求的优先级,可设置值 0、1 。默认0。 如果是1,则所有写请求将等待相关表上读请求及读锁完全结束再进行。


 

70.lower_case_files_system

    global级别,不可动态更改。

    显示数据目录所在的文件系统是否对文件名的大小写敏感,ON不敏感,OFF敏感。


 

71.lower_case_table_names

    global级别,可动态更改。

    设置mysql在创建表及表名比较的时候如何处理大小写问题 , 可设置为0,1,2。

    0:按实际创建语句中的大小写创建表文件,在比较查找表的时候也区分大小写。

    1:所有表文件全部使用小写创建,比较的时候忽略大小写。

    2:按照实际创建语句中的大小写创建表文件,但比较的时候永远使用小写来比较。


 

72.max_allowed_packet

    session/global级别,可动态更改。

    在网络传输中,一次消息传输量的最大值。这个参数与net_buffer_length 相对应,只不过是 net buffer 的最大值 。但消息传输量大于 net _buffer_length 的设置时,Mysql 会自动增大 net buffer的大小,直到缓冲区大小达到max_allowed_packet 所设置的值。系统默认1M,最大值1G,必须设置为1024的倍数,单位为字节。


 

73.max_binlog_cache_size

    global级别,可动态更改。

    设置binlog cache 在遇到无法存放下一个大事务说包含的SQL 语句时,会自动扩张到此参数设置值。假如还不够,则此事务会失败,并返回错误信息:Multi-statement ransaction required more than ‘max_binlog_cache_size’ bytes of storage。 可设置范围4KB至4GB,默认4GB。


 

74.max_binlog_size

    global级别,不=可动态更改。

    二进制日志文件的最大值。但是,当遇到多sql语句的大事务时,可能会超出该参数设置范围,因为一个事务不能被分段存放在两个二进制日志中。设置访问是4KB到1GB,默认1GB。


 

75.max_connect_errors

    global级别,可动态更改。

    设置每个host 的连接请求异常中断最大次数,当超过该次数,mysql server 将禁止该host 上的连接请求,直到mysql server重启或通过 FLUSH HOSTS,命令清空某host的相关信息。可设置访问1到4G,默认10.


 

76.max_connections

    global级别,可动态更改。

    设置mysql server 允许的最大连接数量。该值在不同版本的mysql 中默认值和范围不同。


 

77.max_delay_threads(同max_insert_delayed_threads)

    session/global级别,可动态更改。 

    设置mysql处理 INSERT DELAYED操作时的最大线程数。如果所有 INSERT DELAYED 线程已经在使用,你想在新表中插入数据,mysql 会忽略DELAYED 属性。如果将该值设置为0,mysql不会创建线程来处理DELAYED行,相当于完全禁用了DELAYED。设置范围是0到16384 。默认20 。


 

78.max_error_count

    session/global级别,可动态更改。

    mysql保存的用于 SHOW ERRORS 或 SHOW WARNINGS显示的错误、警告和注释的最大数目。范围是0到65535,默认64。


 

79.max_heap_table_size

    session/global级别,可动态更改。

    设置mysql内存表(存储引擎Memory)的最大值。范围16KB到4GB。默认16M。


 

80.max_join_size

    session/global级别,可动态更改。

    设置 mysql join语句中参与jion 语句的最大行数,或者最大磁盘查询次数。但某个join语句超过该限制,mysql会自动拒绝执行语句。范围是1到4G,默认4G。


 

81.max_length_for_sort_data

    session/global级别,可动态更改。

    此参数决定mysql排序算法的选择,设置排序之前读取字段长度总和的最大限制。当需要返回字段的最大长度小于这个参数值的时候,mysql就会通过存储引擎一次将所需字段全部收回,然后排序后再返回。但是当需要返回的字段超过此参数值,mysql在排序的时候将仅仅取出需要排序的字段和可以直接定位数据记录的行指针信息,排好序后返回重新取出所需的其他字段。此参数大小影响到排序的查询性能。范围是4B到8M,默认1K。


 

82.max_prepared_stmt_count

    global级别,可动态更改。

    设置mysql 所允许的最大Prepared Statement 的数量可设置范围是 0到1048576,默认16382。


 

83.max_relay_log_size

    global级别,可动态更改。

    类似max_binlog_size,设置Relay Log 大小的最大值。设置0 则代表使用和 max_binlog_size一样的值。范围是0到1GB,默认0。


 

84.max_seeks_for_key

    session/global级别,可动态更改。

    影响优化器的参数,当mysql优化器认为在使用索引扫描时,若根据索引键扫描表的次数大于此参数值,则会放弃索引而使用全表扫描。设置范围4到8388608,默认1024。


 

85.max_sort_length

    session/global级别,可动态更改。

    设置当排序BLOB或TEXT值时使用的字节数。


 

86.max_sp_recursion_depth(5.1起)

    session/global级别,可动态更改。

    设置mysql存储过程递归调用的层次深度,默认0(不允许递归调用),最大255


 

87.max_tmp_tables

    session/global级别,可动态更改。

    一个客户端连接可同时打开的最大临时表数量。范围是1到4G,默认32。


 

88.max_user_connections

    session/global级别,可动态更改。

    设置同一个用户允许的最大连接数,设置0代表不限制。


 

89.min_examined_row_limit

    session/global级别,可动态更改。

    设置记入slow log的Query的最小访问记录数,当某个Query 访问的记录数小于此参数设置时,将不会被记录进入slow log,即使执行时间满足slow log的设置。


 

90.myisam_block_size

    global级别,不可动态更改。

    myisam表索引的block大小。范围是1024到16384,默认1024。


 

91.myisam_max_sort_file_size

    global级别,不可动态更改。

    重建Mysiam索引(alter table、repair table、load data infile)时,允许mysql使用的临时文件的最大空间,如果文件大小超过该值,则使用键值缓存创建索引,默认2G。


 

92.myisam_sort_buffer_size

    session/global级别,可动态更改。

    在repair table,或用create index创建索引或alter table 过程中排序索引所分配的缓冲区大小。可设置访问4B到4G,默认8M。


 

93.myisam_stats_method

    session/global级别,可动态更改。

    告诉myisam在收集信息的时候,对NULL的判断。可设置值为 nulls_unequal 和 nulls_enqual。

    nulls_unequal :Myisam 会认为每个null值都不同,所以如果对此值加索引,基数会很大,distinct值会很多

    nulls_enqual:Myisam 会认为每个null值都一样,跟上面相反。值得说的是 如果一个列相同的值太多,优化器会放弃走索引。


 

94.net_buffer_length

    session/global级别,可动态更改。

    控制网络缓冲区初始值大小,可扩展至max_allowed_packet参数大小。可设置范围1024到1048576,默认16384。


 

95.old_passwords

    session/global级别,可动态更改。

    设置是否使用4.1之前的密码加密算法进行密码验证。


 

96.open_files_limit

    global级别,不可动态更改。

    设置mysql可打开的文件数总量,在OS级别也有相关设置会影响到结果。范围是0到65535,默认0,即和OS 级别相同的限制。


 

97.optimizer_prune_level

    session/global级别,可动态更改。

    设置优化器选择的规则,是否允许优化器跳过某些方案。可设置为on(1) 和off(0)。默认ON。

    ON:告诉优化器根据对每个表访问行数的估计跳过某些执行计划。这样可以大大降低查询编辑次数,并且按照mysql的测试,这样的设置基本不会错过最佳的执行方案。

    OFF:每个计划都执行。


 

98.optimizer_search_depth

    session/global级别,可动态更改。

    控制优化器在评估执行计划的时候所分析的层次深度,默认62。如果过大,则复杂查询会花很长时间产生执行方案。如果过小,可能导致产生的执行方案不够优化。如果不确定可设置为0,告诉优化器自动确定该值。


 

99.preload_buffer_size

    session/global级别,可动态更改。

    设置预加载索引时候缓冲区的大小。


 

100.profiling

      session级别,可动态更改。

      是否打开Profiling功能来监控Query执行过程中的prifile信息。


 

101.profiling_history_size

     session级别,可动态更改。

     设置存放profile信息的最大数量,默认15,最大100。


 

102.query_cache_limit

     global级别,可动态更改。

     设置Query Cache中可以接受的最大结果集,超出参数设置范围的结果集将不会被缓存,最小0,默认1M。


 

103.query_cache_min_res_unit

     global级别,可动态更改。

     设置Query Cache中用于存放结果集的最小快的值。最小可设置为512B,默认4KB。


 

104.query_cache_size

     global级别,可动态更改。

     设置mysql的Query Cache大小。默认0,即关闭查询缓存功能。


 

105.query_cache_type

     session/global级别,可动态更改。

     设置查询缓存的类型,可设置0、1、2。

     0:关闭查询缓存。

     1:缓存除了通过SQL_NO_CACHE明确提示不缓存之外,缓存所有的查询。

     2:仅仅缓存SQL_CACHE明确提示需要缓存的查询。(建议)。


 

106.query_cache_wlock_invalidate

     session/global级别,可动态更改。

     控制当有写锁定发生在表上的时刻是否先失效该表相关的 Query Cache,如果设置为 1(TRUE),则在写锁定的同时将失效该表相关的所有Query Cache,如果设置为0(FALSE)则在锁定时刻仍然允许读取该表相关的 Query Cache。默认false。主要跟事务型存储引擎innodb有关,1是在执行事务为commit之前的所有查询缓存都失效,0是还可以查询缓存。


 

107.read_buffer_size

     session/global级别,可动态更改。

     设置以顺序扫描的方式扫描表数据的时候使用缓冲区的大小。每个线程进行顺序扫描的时候都会产生该buffer,而且同一个query中如果有多个表进行全表扫描,会生成多个buffer。所以在设置的时候尽量不要太高,避免因为并发太大造成内存浪费。默认128K,最大2G,设置值必须是4K 的倍数,否则系统会自动更改成小于设置值的最大值的4K的倍数。

     一般来说,可以尝试适当调大此参数看是否能够改善全表扫描的性能。


 

108.read_rnd_buffer_size

     session/global级别,可动态更改。

     设置随机读的时候所使用的缓冲区。和read_buffer_size所设置的buffer相反,一个随机读的时候使用,一个顺序读的时候使用。但是两者都是针对线程的设置的。默认256K,最大4G。


 

109.relay_log_purge

     global级别,可动态更改。

     是否自动清除不再需要的Relay log。从上面的配置


 

110.relay_log_space_limit

     global级别,不可动态更改。

     设置Relay Log占用的最大空间量,默认0,即不限制。


 

111.secure_auth

     global级别,可动态更改。

     设置是否启用阻止所有使用旧密码方式的连接请求,可设置为ON 或OFF。


 

112.secure_file_priv

     global级别,不可动态更改。

     设置LOAD DATA INFILE 和 SELECT ... INFILE 命令所使用的文件目录。如果此参数不为空,则仅仅可以使用设置目录下的文件,默认空。


 

113.skip_external_locking

     global级别,不可动态更改。

     设置mysql是否忽略外部锁定,仅有多个Instance使用相同的数据文件及通过myisamchk客户端工具教验Myisam表文件时,需要外部锁定,正常情况下建议使用此参数选项启动Mysql。


 

114.skip_networking

     global级别,不可动态更改。

     设置mysql是否监听网络访问,开启后,通过域名授权的帐号将不能访问。


 

115.skip_show_database

     global级别,不可动态更改。

     防止不具有show databases权限的人使用 show databases语句。如果担心用户可以看到其他数据库,可以设置。

     ON:只允许具有show databases权限的人使用show databases,并且显示所有数据库名。

     OFF:允许所有用户自行show databases,但只显示具有show databases或其他权限的数据库名。


 

116.slow_query_log_file(5.1.12起)

     global级别,不可动态更改。

     设置当以文件形式记录Slow Query Log的时候所使用的日志文件名。默认hostname-slow.log


 

117.sort_buffer_size

     session/global级别,可动态更改。

     系统中对数据进行排序的时候使用的Buffer。

     Sort buffer是针对单线程的,所有当多个线程同时进行排序的时候,系统中会出现多个Sort buffer。适当增大此值可以提高order by 和group by的性能。系统默认2M,最大限制和join buffer一样。5.1.23之前最大4G,之后在64位系统上可以更大。


 

118.sql_log_bin

     session级别,可动态更改。

     设置是否将自己的操作计入二进制日志。仅仅有super权限的用户才可以动态设置。当值为0的时候,所有变更操作不会被记录二进制日志。


 

119.sql_log_off

     session级别,可动态更改。

     设置是否将自己的操作记录到General Log。


 

120.sql_mode

     session/global级别,可动态更改。

     设置mysql server的操作模式,mysql支持30多种模式。


 

 

121.sql_select_limit

     session/global级别,可动态更改。

     设置mysql的一条query 语句允许返回的最大记录数,此参数设置不影响存储过程中的Query。


 

122.sql_slave_skip_counter

     global级别,可动态更改。

     在Replication环境中,slave端通过设置此参数来跳过某些query不被复制,一般用于slave端sql遇到错误,这样可以防止复制的经常中断。


 

123.storage_engine

     session/global级别,可动态更改。

     设置默认存储引擎。


 

124.sync_binlog

     global级别,可动态更改。

     设置 二进制日志 从binlog_buffer 中刷新到磁盘的频率。这个参数很重要。默认0

     0:在事务提交之后,mysql不做fsync之类的磁盘同步指令,而让文件系统自行决定什么时候去同步。

     n:在每进行 n 次事务提交之后,mysql进行一次fsync之类的磁盘同步操作。

     注:0是性能最好的,但风险也最大。1是最安全的但是性能损耗有很大。sync_binlog设置为0和1,对于高并发系统写入性能差距高达5倍以上。


 

125.sync_frm

     global级别,可动态更改。

     设置创建临时表时,是否在完成操作的同时进行磁盘刷新操作,保证数据写入到磁盘持久化。默认TRUE。


 

126.table_definition_cache(5.1.3起)

     global级别,可动态更改。

     设置mysql中Cache表定义信息的最大数量,当表定义比较多的时候,可以适当增加此值,最大524288。5.1.25之前默认1,之后默认256。


 

127.table_open_cache(5.1.3起)

     global级别,可动态更改。

     设置mysql中cache打开的表的最大数量。


 

128.thread_cache_szie

     global级别,可动态更改。

     设置Thread Cache池中可以缓存的连接线程数。范围是0到16384,默认0。 

 


 

 

129.thread_concurrency

     global级别,可动态更改。

     此参数只在Solaris系统环境下有效,mysqld 用该值调用thr_setconcurrency()。该函数是应用程序向线程系统提供需要同时运行的期望线程数目的指示。

 


 

 

130.thread_stack

     global级别,不可动态更改。

     设置mysql每个线程的堆栈大小。默认值足够大,可满足普通操作。范围是128K到4G,默认192K。


 

131.tmp_table_size(5.1.12起)

     session/global级别,可动态更改。

     设置内存内临时表最大值。如果超过该值将会被写入到磁盘。范围是1K到4G。


 

132.tmpdir

     global级别,不可动态更改。

     设置临时文件存放目录,在linux/unix平台默认/temp。


 

133.tx_isolation

     session/global级别,可动态更改。

     设置mysql使用的事务隔离级别,可设置4总事务级别:READ-UNCOMMITTED、READ-COMMITTED、REPEATABLE-READ、SERIALIZABLE。

 

http://blog.csdn.net/gs_zhaoyang/article/details/7369948

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics