zoukankan      html  css  js  c++  java
  • mysql系统变量(上)

    1 log_slow_queries                        | OFF/ON

     慢查询记录日志,慢查询是指查询时间超过设定时间(如下面设为2秒)的查询,(还有个指标是第29点的min_examined_row_limit)这个可以记录那些查询语句比较慢,然后通过分析语句而优化数据库或查询语句。具体配置在my.ini加入:

    log_show_queries = “日志路径/文件名”   #保存日志的路径和文件名,确保权限可写

    long_query_time = 2                   #超过多少秒则保存查询数据

    log-queries-not-using-indexs             #不使用使用索引

    PS加上代码后重启mysqllog_slow_queries=ON状态(默认OFF

    作用域:全局 

    2log_warnings                            | 1

    默认值为1,表示在错误日志当中添加更多日志,日至格式:

    120426 11:55:09 [Worning]内容,上网查了一下,国内这个变量的资料少得可怜,查看官网英文文档,会把一些断开链接的错误写进错误日志里面。

    可以在配置文件my.ini 加入skip-log-warnings=1来停止log_warning 的使用, skip-log-warnings=1后在mysqladmin 里面用”mysqladmin用户名 密码 variables”查看,会发现log_warning的值是0而不是默认的1.

    作用域:全局 

    3long_query_time                        | 10.000000

    这是和log_slow_queries一起使用的,它是设置慢查询时间,若值是0.2,则查询大于0.2秒的定为慢查询。如果启用了慢查询日志,则会把慢查询的信息写如慢查询日志文件中。具体可以查看

    作用域:全局  、会话

    本文第一点。慢查询:http://www.phpben.com/?post=67

    4 low_priority_updates                    | OFF

    这个变量是降低mysql写数据的权限的,mysql默认情况下写操作权限高于读操作。附加一些知识:在mysql MYISAM表中读写是串行,即是select时锁表,insert等待释放再,反之一样。然后为了减少锁存和锁读的频率,则引入了concurrent_insert这个变量,使读写能并行操作(具体根据concurrent_insert值还有mysql版本而定)

    作用域:全局  、会话

    mysql5.06版本之后,concurrent_insert=0则读(select)的时候不能执行写(insertconcurrent_insert=1select时写操作把数据写在文件,concurrent_insert=21差不多,不同的是:1在数据没内存碎片(洞)才能写在文件尾,否则还是写在洞里;而2则是在select时并发写入文件尾,当select释放读锁时,数据写入洞里面。---推荐用current_insert=2

    官网描述:

    0
    Disables concurrent inserts
    1
    (Default) Enables concurrent insert for MyISAM tables that do not have holes
    2
    Enables concurrent inserts for all MyISAM tables, even those that have holes. For a table with a hole, new rows are inserted at the end of the table if it is in use by another thread. Otherwise, MySQL acquires a normal write lock and inserts the row into the hole.

    回正题:

    low_priority_updates=1则是比上述方法更极端,直接给读操作优先与写操作。(不推荐)

    5lower_case_file_system                  | ON

    这是控制mysql数据库文件名在文件系统中是否对大小写敏感,默认是ON对大小写不敏感,OFF的话就是对大小写敏感。

    作用域:全局 

    6lower_case_table_names                 | 1

    此变量是设置数据库名或表别名是否大小写敏感。

    作用域:全局 

    0:存储时按照指定的表名,比较时对大小写敏感。

    1:存储时按照小写(不管表是否有大写),比较时对大小写不敏感。

    2:存储时按给定的表名,比较时用小写。

    对于windowsMac OX S 这些文件系统对大小写敏感的系统一般不设0windows默认设置为1Mac OX S设置为2

    7max_allowed_packet                      | 1048576

    8net_buffer_length                       | 16384

    先介绍net_buffer_length,它是每个客户端线程的连接缓存区和结果缓冲区都是通过net_buffer_length来初始化,net_buffer_length默认初始值是1638416K),但其值最大可以达到max_allowed_packet设定值,max_allowed_packe默认值是1M,最大达到10737418241G),其值必须是1024的倍数,否则回落到最靠近1024倍数值(如1025则值是1024),在内存允许的情况下,max_allowed_packe越大越好。

    max_allowed_packe设置的小,当增改(insert/update/load data infile)数据库时,若出现大字符串或blob类型列且大小大于max_allowed_packe值则会出现以下问题。

    My.ini加入配置

    net_buffer_length=1024  #默认是16384,这里改小为了测试

    max_allowed_packet=1025#默认是1M,这里虽然是1025而事实上值是1024

    笔者更新表某列(值大于1024)则出现:

    ERROR 1153 (08S01): Got a packet bigger than 'max_allowed_packet' bytes

    注意:在version()<5.0.84 net_buffer_length可以设置但没有效,version()=5.0.84是只读

    9 max_binlog_cache_size                   | 4294963200

    这是设置最大二进制日志的缓存区大小的变量。若处理多语句事务时需要的内存大小比设置值大的话就会提示一个errorMulti-statement transaction required more than 'max_binlog_cache_size' bytes of storage 

    这个变量最小值是40964K),最大值,在32位的系统中是4G64位的是16P

    作用域:全局 

    mysql5.0中,max_binlog_cache_size一修改则所有会话都受影响(可能之前的受延迟,笔者没查证过)

    10 max_binlog_size                         | 1073741824

    这是设置每个二进制日志文件内容大小的变量,如果当前文件的数据量大于max_binlog_size的值时,则会关闭此文件,新建下个文件写入数据。

    但是,当处理多语句事务(大事务)时,会出现文件数据大小比此值设置值大的情况。这是因为事务的二进制日志是块存储的,也就是说不会分割出来存放在两个日志文件中。

    作用域:全局

    11 max_connect_errors                      | 10

    设置某客户端链接mysql服务器失败次数,若次数超过此值,则锁定禁止该客户端链接服务器且提示错误,若在未超过此值有一次成功链接,则计数器会清零。

    这是一个与性能无关的变量,而是安全方面考虑的,主要防止穷举法破解数据库用户和密码。

    作用域:全局 

    默认值是1032位系统1~ 429496729564位的是1~18446744073709547520

    官方说:一旦锁定,要解锁只有方法:在mysql客户端flush hosts ;在mysqladmin中用mysqladmin flush-host

    笔者在本机测试过:这个功能用不了 

    12 max_connections                         | 100

    这个设置数据库并发可连接的数量

    作用域:全局 

    值域:

    Version()<=5.1.14 :默认100

    Version()>=5.1.15 :默认151  1~16384

    Version()>=5.1.17 :默认151  1~100000

    这是网站成长必要修改的一个变量,允许多少人在网站上并发操作。

    13max_delayed_threads                    | 20

    延迟操作Delay_insert最大线程数

    作用域:全局  、会话

    默认20 值域:0~16384

    -----------------------------------------------------------------

    14 max_error_count                         | 64

    Show warning show error 显示warningError显示的最大个数,默认是64,值域0~65535.此值不能改太小,否者若错误提示个数比此值多的话不方便调试。

    作用域:全局  、会话

    注意:此值不要调太小;对于已经运行系统,可设为0,不会提示错误。

    -----------------------------------------------------------------

    15max_heap_table_size                     | 16777216

    内存表最大行数。

    作用域:全局  、会话

    值域:32位操作系统16384~4294967295  64位操作系统16384 ~ 1844674407370954752

    默认值都是16777216

    更新设置此值对已存在的内存表没影响(重启mysql服务器就有),对create/update/truncate语句有影响。

    -------------------------------------------------------------------

    16max_insert_delayed_threads              | 20

    max_delayed_threads的别名,看第13点。

    作用域:全局  、会话

    -----------------------------------------------------------------------

    17 max_join_size                           | 18446744073709551615

    18 sql_big_selects                        | ON

    max_join_sizesql_big_selects

    作用域:全局  、会话

    sql_big_selects默认值是1,表示所有select查询都执行(不管时间长短)。

    sql_big_selects=0/OFF时,mysql先估算单表查询结果行数或多表查询组合行数的大小,若比max_join_size大时,就会放弃该查询语句。

    max_join_size默认是4294967295,值域:1~4294967295

    注意sql_big_selects=0/OF的情况下,max_join_size不齐作用,且当max_join_size设置为非默认值时,sql_big_selects会被重置为0.

    ------------------------------------------------------------------------

    19 max_length_for_sort_data                | 1024 ====

    确定使用的filesort算法的索引值大小的限值。

    作用域:全局  、会话

    =========以下引用网上内容这是地址:http://www.itpub.net/thread-1417429-1-1.html

    mysqlfilesort算法有两种:

    一种是最初的算法,在MySQL 4.1以前只有这种算法,一种是改进的filesort算法,它出现在MySQL 4.1以后(blobtext类型的字段不能采用这种改进算法)

     

    "最初的算法"流程如下:

    1.读取所有的满足条件的数据,只包含sort keyrow pointer两种数据

    2.buffer中执行qsort排序

    3.排完序后,再根据row pointer去读取相应的行数据

    从中可以看出,每次排序都需要读两次表,而根据row pointer去读表往往都是随机离散读的,所有其开销非常大。

     

    改进后的filesort算法是:

    1.读取所需要的数据,包含sort key,row pointer和查询所需要访问的字段

    2.根据sort key排序

    3.按排序后的顺序读取数据,由于sort_buffer_size中包含了所需要的字段,因此不需要再回表了,可以直接返回结果给客户端。

    很明显,这种改进的方法对sort_buffer_size的需求也大大增加.

     

    所以为了防止性能下降,mysql增加了一个参数max_length_for_sort_data,当第一步中除了sort key以外的字段内容大于max_length_for_sort_data这个参数时,mysql将采用第一种排序算法。

    --------------------------------------------------------------------

    20max_prepared_stmt_count                 | 16382

    该变量设置预处理语句限制数。这个功能能防止拒绝服务攻击,因为攻击可以通过大量的预处理语句致使服务器内存溢出来攻击。设置此变量就是一道安全屏障,此变量对原有的预处理语句不影响,但若是预处理语句的数量超过该变量的值,则不会新增预处理语句,而是等到预处理语句的值小于max_prepared_stmt_count的值才增加新语句。

    作用域:全局 

    默认值:16382 值域:0~1048576

    若设为0则表示不允许预处理语句。

    注意:该变量是version()>5.0.21才有

    -----------------------------------------------------------------

    21max_relay_log_size                     | 0

    中继日志大小,和第10点的max_binlog_size类同,只不过中继日志是保存从服务器的日志,是从主服务器复制过来的二进制日志。

    max_relay_log_size =0max_relay_log_size=max_binlog_size

    max_relay_log_size >0则中继日志大小是max_relay_log_size设定的值

    作用域:全局

    默认值:值域:0~1073741824

    -----------------------------------------------------------------

    22max_seeks_for_key                      | 4294967295

    此变量假定索引搜索行数最大值。也就是说这个值是索引搜索最大值。查询优化器会忽略索引基数(用show index from table 可看到基数cardinality),它假定扫描索引匹配的行数不会超过max_seeks_for_key设定值。

    官网:可以通过改小这个值来强制mysql使用索引来代替全表扫描。

    作用域:全局  、会话

    32位系统:默认4294967295,值域:1~ 4294967295

    64位系统:默认18446744073709547520,值域1~18446744073709547520

    --------------------------------------------------------------------

    23 max_sort_length                         | 1024

    当排序BLOB或者TEXT类型列数据时用的字节数。当数据长度> max_sort_length设定值,排序就用max_sort_length的长度来排序,后面的数据被忽略。

    作用域:全局  、会话

    默认是1024 值域:4~ 8388608

    ----------------------------------------------------------------------

    25max_sp_recursion_depth                  | 0

    设定存储过程(sp=>save procedures)最大递归数。

    作用域:全局  、会话

    默认0,禁止存储过程递归,最大值255

    PS此变量在version()=5.0.17引入

    ----------------------------------------------------------------------

    26 max_tmp_tables                          | 32

    设定客户端同时能打开临时表个数的最大值

    作用域:全局  、会话

    32位系统:默认32 值域:1~4294967295

    64位系统:默认32 值域:1~18446744073709547520

    PS: 官网:This variable does not yet do anything(该变量还没生效)

    ------------------------------------------------------------

    27max_user_connections                   | 0

    Mysql每个用户能同时链接服务器最大值。0表示没有限制

    默认值:值域:1~ 4294967295

    作用域:全局  、会话

    ----------------------------------------------------------------------

    28max_write_lock_count                    | 4294967295

    设定数据表写锁定最大数,注意:这是对同一个表来说的。

    作用域:全局 

    值域:

    32位系统:默认4294967295 值域:1~ 4294967295

    64位系统:默认18446744073709547520 值域:1~18446744073709547520

    网上有人说:当对同一个表锁定个数超过设定值的时候,服务器会释放读锁定。

    笔者有些怀疑,做了个测试:

    max_write_lock_count =4294967295

    开启三个客户端,第一个锁定写,第二个select读取,第三个有加一个锁定,顺序123

    当笔者开第一个锁定时,读客户端还在等待。

    max_write_lock_count =2

    第一锁定表,第二selcet语句,第三锁定表

    1  解开第一个锁,select这边没反应

    2  再加一个锁定(三个,解开一个还有两个),selcct这边还是没反应

    3  加一个客户端insert数据,即时31插入1查找,当解开一个锁时,selcet和插入都有了反应且正常运行。

    笔者结论是

    应该是:当写锁定超过限制且有其他客户端写操作时,部分读操作被释放。

    ------------------------------------------------------------------

    29min_examined_row_limit                 | 0

    这也是判断一个查询是否是慢查询的一个变量,参考第1点的log_slow_queries  

    若查询的结果集行数大于min_examined_row_limit值,则查询被当作慢查询写入慢查询日志。

    作用域:全局  、会话

    值域:

    32位系统:默认4294967295值域:1~ 4294967295

    64位系统:默认18446744073709547520 值域:1~18446744073709547520

    -------------------------------------------------------------------

    30multi_range_count                      | 256

    veriosn=5.03加入该变量

    设定查询语句中range范围最大个数,如“where id>100 and userId<50”是两个范围。

    默认是256

    作用域:全局  、会话

    值域:1~ 4294967295

    一般不改此参数。

    ---------------------------------------------------------------------

    31 myisam_data_pointer_size                | 6

    默认指针大小,单位是字节, MAX_ROWS不指定时,CREATE TABLE使用该变量创建MyISAM表。默认值是6。值域:2~7

    作用域:全局

    --------------------------------------------------------------------

    32 myisam_max_sort_file_size               | 107374182400

    当用到REPAIR TABLE, ALTER TABLE, LOAD DATA INFILE的时候,相应的索引会被重建,然后要用到临时文件,此变量就是设置临时文件大小的。如果索引文件大小比此值小,系统则调用速度更慢的键值创建索引。

    作用域:全局

    默认是2G

    官网建议:如果MyISAM索引文件大于2G且硬盘空间允许,增大该值可以提高性能。注意的是增加的空间是包含原来索引文件空间的。

    -----------------------------------------------------------------------

    33 myisam_mmap_size                        | 4294967295

    Mmp:memory mapping 内存映射

    设置使用内存映射压缩MyISAM表文件的最大内存量的变量。

    如果许多压缩MyISAM表使用,可以通过降低该值来减低内存交换问题出现的可能性。

    作用域:全局

    值域:

    32位系统:默认4294967295值域:1~ 4294967295

    64位系统:默认18446744073709547520 值域:1~18446744073709547520

    -------------------------------------------------------------------

    34myisam_recover_options                  | OFF

    设置MyISAM存储模式,它的值可以是OFF, DEFAULT, BACKUP, FORCE, QUICK任意组合,组合值则用‘,’隔开。

    默认是OFF

    若非OFF的话,表示每次打开MyISAM表都检查表是否崩溃或者非正常保存,否则和尝试修复表。

    修复按照值选项而定:

    OFF:关闭

    DEFAULT:修复中没有BACKUP, FORCE, QUICK

    BACKUP:如果修复过程中用户修改数据,则把“表名.MYD”文件备份成“表名-时间.BAK”文件

    FORCE:继续修复数据即便是丢失大量数据

    QUICK:不检查表中的行,如果没有任何删除块。

    还有的是,修复之前,mysql会在错误日志中写入note,这个note关于修复的。

    官网建议:如果想在不受用户打扰的情况下修复数据,则设置为“BACKUP, FORCE”。这样的话,就强制修复即便有人删除数据,修复完了还可以用备份数据查看发生情况。

    作用域:全局

    ----------------------------------------------------------------------

    35 myisam_repair_threads                   | 1

    myisam_repair_threads =1 则在repair by sort时,MyISAM表索引在各自线程中并发创建。

    作用域:全局|会话

    值域:

    32位系统:默认值域:1~ 4294967295

    64位系统:默认值域:1~18446744073709547520

    ------------------------------------------------------------------------

    36 myisam_sort_buffer_size                 | 31457280

    REPAIR TABLE或则 CREATE INDEX  ALTER TABLE创建索引的时候,.给分配的缓冲区的大小。

    作用域:全局|会话

    值域:

    32位系统:默认8388608 值域:4~ 4294967295

    64位系统:默认8388608  值域:4~18446744073709547520

    ------------------------------------------------------------------------

    37myisam_stats_method                     | nulls_unequal

    该变量告诉服务器,在服务器收集有关MyISAM表的索引值的分布统计时如何处理NULL值。变量可选三个值:nulls_equal, nulls_unequal, nulls_ignored.

    Nulls_equal 时,所有null值都被当成一样,形成一个大小是null值个数的单值组。

    nulls_unequal时,null被认为是不一样的(尽管我们看来是一样),每个null形成一个大小为1的不同值组。

    nulls_ignored时,值被忽略

    PS至于为什么要这样区别对待,这里有讲解http://www.phpben.com/?post=69

    -----------------------------------------------------------------------

    38myisam_use_mmap                        | OFF

    这个变量开启的话,就利用内存映射来读和写myisam表,默认是关闭的OFF,一般内存服饰很大的情况下是不会开启这一项

    作用域:全局

    ---------------------------------------------------------------------------

    39named_pipe                              | OFF

    该变量指示mysql服务器是否支持管道连接。

    只使用windows系统

    作用域:全局

    ---------------------------------------------------------------------------

    40 net_read_timeout                        | 30

    设置服务器放弃读前多少秒以等到更多的连接数据,当服务器从客户端读取,net_read_timeout是设施多少秒后终止读,而类是的变量net_write_timeout设置终止写。也就是mysql为了保证连接不被浪费在无尽的等待中,mysql 通过net_read_timeoutnet_write_timeout来主动终止连接。

    作用域:全局、会话

    值域:默认30 最小是1

    ----------------------------------------------------------------------------

    41net_write_timeout                       | 60

    看上。

    作用域:全局、会话

    值域:默认60 最小是1

    ----------------------------------------------------------------------------

    42net_retry_count                         | 10

    如果读或写一个通信端口中断,mysql放弃前尝试连接的次数。在FreeBSD系统中此值应设置很高,因为FreeBSD内部中断被发送到所有线程去。

    作用域:全局|会话

    值域:

    32位系统:默认10 值域:1~ 4294967295

    64位系统:默认10  值域:1~18446744073709547520

    -----------------------------------------------------------------------------

    43 new                                     | OFF

    该变量用于mysql4.0启用mysql4.1一些新功能,和为了保持向后兼容性。在mysql5.6中,这个变量的值都是OFF

    作用域:全局|会话

    默认是False

    -----------------------------------------------------------------------------

    44 old                                     | OFF

    Old是兼容性变量。默认被禁用,在旧版本的服务器可以通过重启服务器时启用。

    目前,old被启用时,它改变使用索引提示的默认范围到MySQL5.1.17之前。也就是说,没有FOR子句仅适用于如何使用索引检索行,而不是解决ORDER BYGROUP BY子句的索引提示。在复制设置启用这个变量时要注意些,基于语句的二进制日志,主从服务器有不同的模式可能会导致复制错误。

    作用域:全局

    默认是:OFF

    -------------------------------------------------------------------------------

    45old_alter_table                        | OFF

    当该变量被启用,则mysql服务器不会使用alert table 优化方法。在mysql5.0和更早版本,先用个临时表,复制数据进去,然后重命名到原始的临时表。

    作用域:全局

    默认值:OFF

    ----------------------------------------------------------------------------------

    46old_passwords                          | OFF

    该变量设置是否启用mysql4.1之前的账户密码类型。

    作用域:全局

    默认值:OFF

    ---------------------------------------------------------------------------------

    47 open_files_limit                        | 622

    设置操作系统允许mysqld允许打开的文件数。这是系统允许的真正值,可能和你用--open-files-limit选项给mysqldmysqld_safe设置的值不同。该值是0的系统上,MySQL不能更改打开的文件数

    作用域:全局

    默认值:值域:0-65535

    ------------------------------------------------------------------------------

    48optimizer_prune_level                  | 1

    该变量为1,控制启发式应用在查询优化过程中,从优化空间中剪去不太有用的部分计划。

    0禁用启发式优化执行穷举搜索。

    1时让优化器根据被检索的行数通过中间计划来剪去不太有用的计划。

    作用域:全局、会话

    默认值:1

    值域是:01

    ---------------------------------------------------------------------------------

    49 optimizer_search_depth                  | 62

    查询优化器进行的搜索的最大深度。如果值大于查询中的关系数则查询方案比较佳,但生成查询执行方案需要的时间更长。值大于查询中的关系数则返回的执行方案更快,但方案远没有优化。如果设置为0, 系统自动选择合理的值。

    作用域:全局、会话

    默认值:62

    值域是:0-62

    ps:上述的关系数即时join连结中的表数。

    如果optimizer_search_depth设置过大,那么join时,获取最优执行计划的代价十分巨大。

    optimizer_search_depth = join tables的数量,一定能获得最优执行计划(根据mysql的代价估计模型),但是计算代价大。

    optimizer_search_depth < join tables的数量,获取的执行计划,是局部最优,但是计算代价小。

    optimizer_search_depth参数,对于单表查询无意义。

    ----------------------------------------------------------------------------------

    50 optimizer_switch                        | index_merge=on,index_merge_union=on,

    index_merge_sort_union=on,index_merge_intersection=on

    优化器选项,有很多选项。

    batched_key_access

    Controls use of BKA join algorithm

    block_nested_loop

    Controls use of BNL join algorithm

    engine_condition_pushdown

    Controls engine condition pushdown

    index_condition_pushdown

    Controls index condition pushdown

    index_merge

    Controls all Index Merge optimizations

    index_merge_intersection

    Controls the Index Merge Intersection Access optimization

    index_merge_sort_union

    Controls the Index Merge Sort-Union Access optimization

    index_merge_union

    Controls the Index Merge Union Access optimization

    mrr

    Controls the Multi-Range Read strategy

    mrr_cost_based

    Controls use of cost-based MRR if mrr=on

    semijoin

    Controls all semi-join strategies

    firstmatch

    Controls the semi-join FirstMatch strategy

    loosescan

    Controls the semi-join LooseScan strategy (not to be confused with LooseScan for GROUP BY)

    materialization

    Controls materialization (including semi-join materialization)

    batched_key_access

    Controls use of BKA join algorithm

    block_nested_loop

    Controls use of BNL join algorithm

    engine_condition_pushdown

    Controls engine condition pushdown

    index_condition_pushdown

    Controls index condition pushdown

    index_merge

    Controls all Index Merge optimizations

    index_merge_intersection

    Controls the Index Merge Intersection Access optimization

    index_merge_sort_union

    Controls the Index Merge Sort-Union Access optimization

    index_merge_union

    Controls the Index Merge Union Access optimization

    mrr

    Controls the Multi-Range Read strategy

    mrr_cost_based

    Controls use of cost-based MRR if mrr=on

    semijoin

    Controls all semi-join strategies

    firstmatch

    Controls the semi-join FirstMatch strategy

    loosescan

    Controls the semi-join LooseScan strategy (not to be confused with LooseScan for GROUP BY)

    materialization

    Controls materialization (including semi-join materialization)


    --------------------------------------------------------------------------------------

    51pid_file                             | C:ProgramDataMySQLMySQL Server 5.1DataBsky-PC.pid  进程ID (PID)文件的路径名。可以用--pid-file选项设置该变量

     

    作用域:全局

    值域是:文件目录,字符串

    -----------------------------------------------------------------------------------                             

    52 plugin_dir                             | C:Program FilesMySQLMySQL Server

    5.1lib/plugin

    插件目录的路径。在MySQL 5.1.2中加入了该变量。

    如果插件目录对服务器可写,则有可能给用户通过“SELECT ... INTO DUMPFILE”在目录中写可执行代码。可以通过设置插件目录只读来阻止或者给目录设置--secure-file-priv select可写老保持安全 

    类型:目录名

    默认是:mysql安装目录/lib/pligin

    ----------------------------------------------------------------------------------------

    53 port                                    | 3306

    Mysql监听tcp/ip端口号

    默认3306

    ----------------------------------------------------------------------------------------

    54 preload_buffer_size                     | 32768

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

    作用域:全局、会话

    默认值:32768

    值域是:1024~1073741824

    55 profiling                               | OFF

    设置show profile 命令是否可用。

    profiling=0/OFF show profile不可用

    profiling=1/ON  show profile可用

    ps: show profile是显示查询一些信息。

    -----------------------------------------------------------------------------------------------

    56profiling_history_size                  | 15

    设置show profile 命令显示多少条查询的。

    默认是15,最大值是100

    若此变量的值是0profiling=0/OFF

    -------------------------------------------------------------------------------------------

    57protocol_version                        | 10

    MySQL服务器使用的客户端/服务器协议的版本

    作用域:全局

    -------------------------------------------------------------------------------------------

    58 pseudo_thread_id                        | 0

    这个变量是内部服务器使用。

    --------------------------------------------------------------------------------------------

    59query_alloc_block_size                 | 8192

    语句解析和执行过程中创建的对象分配的内存块分配大小。如果你有内存碎片的问题,它可能有助于提高此参数。

    作用域:全局,会话

    值域:

    32位系统:默认8192 值域:1024~ 4294967295

    64位系统:默认8192 值域:1024~18446744073709547520

    ----------------------------------------------------------------------------------------------

    60query_cache_limit                      | 1048576

    不要缓存大于该值的结果。默认值是1048576(1MB)

    作用域:全局,会话

    值域:

    32位系统:默认1048576 值域:0~ 4294967295

    64位系统:默认1048576 值域:0~18446744073709547520

    --------------------------------------------------------------------------------------------

    61 query_cache_min_res_unit                | 4096

    查询缓存分配的最小块的大小(字节) 默认值是4096(4KB)

    作用域:全局

    值域:

    32位系统:默认4096 值域:512~ 4294967295

    64位系统:默认4096 值域:512~18446744073709547520

    -------------------------------------------------------------------------------------------

    62query_cache_size                        | 104857600

    为缓存查询结果分配的内存的数量。默认值是0,即禁用查询缓存。

    请注意即使query_cache_type设置为0也将分配此数量的内存。

    作用域:全局

    值域:

    32位系统:默认值域:0~ 4294967295

    64位系统:默认值域:0~18446744073709547520

    --------------------------------------------------------------------------------------------

    63query_cache_type                        | ON

    设置查询缓存类型。设置GLOBAL值可以设置后面的所有客户端连接的类型。客户端可以设置SESSION值以影响他们自己对查询缓存的使用。下面的表显示了可能的值。

    0OFF

    不要缓存或查询结果。请注意这样不会取消分配的查询缓存区。要想取消,你应将query_cache_size设置为0

    1ON

    缓存除了以SELECT SQL_NO_CACHE开头的所有查询结果。

    2DEMAND

    只缓存以SELECT SQL_NO_CACHE开头的查询结果。

    ----------------------------------------------------------------------------------------

    64query_cache_wlock_invalidate           | OFF

    一般情况,当客户端对MyISAM表进行WRITE锁定时,如果查询结果位于查询缓存中,则其它客户端未被锁定,可以对该表进行查询。将该变量设置为1,则可以对表进行WRITE锁定,使查询缓存内所有对该表进行的查询变得非法。这样当锁定生效时,可以强制其它试图访问表的客户端来等待。

    作用域:全局

    值域:

    默认FALSE

    -------------------------------------------------------------------------------------

    65query_prealloc_size                     | 8192

    用于查询分析和执行的固定缓冲区的大小。在查询之间该缓冲区不释放。如果你执行复杂查询,分配更大的query_prealloc_size值可以帮助提高性能,因为它可以降低查询过程中服务器分配内存的需求。

    作用域:全局、会话

    值域:

    32位系统:默认8192 值域:8192~ 4294967295

    64位系统:默认8192 值域:8192~18446744073709547520

    ------------------------------------------------------------------------------------

    66rand_seed1                             |

    67rand_seed2                              |

    这两个变量只作用域只是会话层,可以可写不可读,所以用show vriabales是显示不了变量的值。

    这两个变量是为了使rand()函数支持被复制。在含有rand()查询中,主服务器必须给从服务器传递两个值,它们用于种子随机数发生器。从服务器使用这些值来设置会话变量rand_seed1rand_seed2 以至从服务器产生与主服务器相同的值。

    --------------------------------------------------------------------------------------

    68range_alloc_block_size                 | 4096

    该变量是设置范围优化时分配的块的大小。

    作用域:全局、会话

    默认8192

    值域:8192~ 4294967295

    -------------------------------------------------------------------------------------

    69 read_buffer_size                        | 2097152

    每个线程连续扫描时为扫描的每个表分配的缓冲区的大小(字节)。如果进行多次连续扫描,可能需要增加该值, 默认值为131072。该值应是4K的倍数,如果不是4k的倍数,则回滚到最接近4k倍数的值。

    值域:4K~2G

    ---------------------------------------------------------------------------------------

    版权声明:QQ:597507041

  • 相关阅读:
    Android x86 镜像分析之四
    Android x86 镜像分析之三
    Android x86 镜像分析之二
    Android x86镜像分析
    tizen镜像制作
    完成登录与注册页面的前端
    JavaScript 基础,登录前端验证
    CSS实例:图片导航块
    导航,头部,CSS基础
    web基础,用html元素制作web页面
  • 原文地址:https://www.cnblogs.com/spzhangfei/p/4801779.html
Copyright © 2011-2022 走看看