mysql系统变量专题学习(2)

发表于:2013-10-12来源:IT博客大学习作者:Benwin点击数: 标签:MySQL
回正题: low_priority_updates=1则是比上述方法更极端,直接给读操作优先与写操作。(不推荐) ---------------------------------------------------------- 5、lower_case_file_sy

  回正题:

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

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

  5、lower_case_file_system | ON

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

  作用域:全局

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

  6、lower_case_table_names | 1

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

  作用域:全局

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

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

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

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

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

  7、max_allowed_packet | 1048576

  8、net_buffer_length | 16384

  先介绍net_buffer_length,它是每个客户端线程的连接缓存区和结果缓冲区都是通过net_buffer_length来初始化,net_buffer_length默认初始值是16384(16K),但其值最大可以达到max_allowed_packet设定值,max_allowed_packe默认值是1M,最大达到1073741824(1G),其值必须是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

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

  这个变量最小值是4096(4K),最大值,在32位的系统中是4G,64位的是16P。

  作用域:全局

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

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

  10、 max_binlog_size | 1073741824

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

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

  作用域:全局

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

  11、 max_connect_errors | 10

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

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

  作用域:全局

  默认值是10,32位系统1~ 4294967295,64位的是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

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

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

  13、max_delayed_threads | 20

  延迟操作Delay_insert最大线程数

  作用域:全局 、会话

  默认20 值域:0~16384

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

  14、 max_error_count | 64

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

  作用域:全局 、会话

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

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

  15、max_heap_table_size | 16777216

  内存表最大行数。

  作用域:全局 、会话

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

  默认值都是16777216

原文转自:http://blogread.cn/it/article/5968