mysql全局变量详解.docx
- 文档编号:5843307
- 上传时间:2023-01-01
- 格式:DOCX
- 页数:61
- 大小:56.72KB
mysql全局变量详解.docx
《mysql全局变量详解.docx》由会员分享,可在线阅读,更多相关《mysql全局变量详解.docx(61页珍藏版)》请在冰豆网上搜索。
mysql全局变量详解
mysql全局变量详解
目前通过自己常用和网络配合,整理出来的,希望能给你们提供便利,请供参考。
showglobalvariables
auto_increment_offset
自增长字段从那个数开始,他的取值范围是1...65535
auto_increment_increment
表示自增长字段每次递增的量,其默认值是1,取值范围是1...65535.
在主主同步配置时,需要将两台服务器的auto_increment_increment增长量都配置为2,而要把auto_increment_offset分别配置为1和2,这样才可以避免两台服务器同时做更新时自增长字段的值之间发生冲突。
autocommit
设定MySQL事务是否自动提交,1表示立即提交,0表示需要显式提交。
作用范围为全局或会话,可用于配置文件中(但在5.5.8之前的版本中不可用于配置文件),属于动态变量。
1、mysql使用InnoDB的引擎,那么是自动开启事务的,也就是每一条sql都是一个事务(除了select)。
2、由于第一条的原因,所以我们需要autocommit为on,否则每个query都要写一个commit才能提交。
3、在mysql的配置中,默认缺省autocommit就是为on,这里要注意,不用非要去mysql配置文件中显示地配置一下。
automatic_sp_privileges
设定MySQL服务器是否为存储例程的创建赋予其创建存储例程上的EXECUTE和ALTERROUTINE权限,默认为1(赋予此两个权限给其创建者)。
作用范围为全局。
back_log
当MySQL的主线程在短时间内收到大量连接请求时,其会花些时间检测已经有线程并为新请求启动新线程,back_log参数的值即为短时间内到达的请求中有多少可以被接受并等待主MySQL线程进行后续处理。
作用范围为全局,可以用配置文件,非动态变量。
basedir=PATH
用于指定MySQL的安装目录,所有其它的常用相对路径都相对于此处的路径而言。
作用范围为全局,可用于配置文件中,但属于非动态变量。
big_tables
将所有临时表存储在磁盘,而非内存中,缺点是如果某个SQL执行时需要用到临时表,则性能会差很多.
binlog_cache_size
为每个session分配的内存,在事务过程中用来存储二进制日志的缓存,用于提高记录bin-log的效率,作用于全局。
默认值:
32768(32K),范围:
4096..4294967295
大小选择:
没有什么大事务,dml也不是很频繁的情况下可以设置小一点,建议是1048576(1M).如果事务大而且多,dml操作也频繁,则可以适当的调大一点(建议2097152—4194304,即2——4M)。
binlog_direct_non_transactional_updates
参数默认是关闭的。
开启后,不管任何情况对非事务表的操作都将记录binlog。
binlog_format
mysql复制主要有三种方式:
基于SQL语句的复制(statement-basedreplication,SBR),基于行的复制(row-basedreplication,RBR),混合模式复制(mixed-basedreplication,MBR)。
对应的,binlog的格式也有三种:
STATEMENT,ROW,MIXED。
(1)STATEMENT模式(SBR)
每一条会修改数据的sql语句会记录到binlog中。
优点是并不需要记录每一条sql语句和每一行的数据变化,减少了binlog日志量,节约IO,提高性能。
缺点是在某些情况下会导致master-slave中的数据不一致(如sleep()函数,last_insert_id(),以及user-definedfunctions(udf)等会出现问题)
(2)ROW模式(RBR)
不记录每条sql语句的上下文信息,仅需记录哪条数据被修改了,修改成什么样了。
而且不会出现某些特定情况下的存储过程、或function、或trigger的调用和触发无法被正确复制的问题。
缺点是会产生大量的日志,尤其是altertable的时候会让日志暴涨。
(3)MIXED模式(MBR)
以上两种模式的混合使用,一般的复制使用STATEMENT模式保存binlog,对于STATEMENT模式无法复制的操作使用ROW模式保存binlog,MySQL会根据执行的SQL语句选择日志保存方式。
binlog_stmt_cache_size
Sizeofthecachetoholdnontransactionalstatementsforthebinarylogduringatransaction
bulk_insert_buffer_size
为一次插入多条新记录的INSERT命令分配的缓存区长度(默认设置是8M)。
character_set_client
设置客户端的字符集(作用于Global,Session).
Thecharactersetforstatementsthatarrivefromtheclient.
character_set_connection
作用于Global,Session
Thecharactersetusedforliteralsthatdonothaveacharactersetintroducerandfornumber-to-stringconversion.
用于没有字符集导入符的文字和数字-字符串转换。
character_set_database
默认数据库使用的字符集。
当默认数据库更改时,服务器则设置该变量。
如果没有默认数据库,变量的值同character_set_server.
character_set_filesystem
设置文件系统的字符集.
Thefilesystemcharacterset.
character_set_results
用于向客户端返回查询结果的字符集.
character_set_server
服务器的默认字符集。
character_set_system
服务器用来保存识别符的字符集。
该值一定是utf8。
character_sets_dir
字符集安装目录。
collation_connection
连接字符集的校对规则。
collation_database
默认数据库使用的校对规则。
当默认数据库改变时服务器则设置该变量。
如果没有默认数据库,变量的值同collation_server。
collation_server
服务器的默认校对规则。
completion_type
事务结束类型:
(1)如果该值为0(默认),COMMIT和ROLLBACK不受影响。
(2)如果该值为1,COMMIT和ROLLBACK分别等同于COMMITANDCHAIN和ROLLBACKANDCHAIN。
(新事务用刚刚结束的事务相同的间隔等级立即启
动)。
(3)如果该值为2,COMMIT和ROLLBACK分别等同于COMM它RELEASE和ROLLBACKRELEASE。
(事务终止后,服务器断开)。
concurrent_insert
如果为ON(默认值),MySQL允许INSERT和SELECT语句在中间没有空数据块的MyISAM表中并行运行。
你可以用--safe或--skip-new启动mysqld关闭该选项。
该变量为整数,有3个值:
0关
1(默认)在没有空数据块的MyISAM表中启用并行插入
2为所有MyISAM表启用并行插入。
如果表有空记录或正被另一线程使用,新行将插入到表的最后。
如果表未使用,MySQL将进行普通读锁定并将新行插入空记录。
connect_timeout
mysqld服务器用Badhandshake响应前等待连接包的秒数。
datadir
MySQL数据目录。
可以用--datadir选项设置该变量。
default_storage_engine
默认存储引擎.默认为InnoDB.
delay_key_write
该选项只适用MyISAM表。
它具有下述值可以影响CREATETABLE语句使用的DELAY_KEY_WRITE表选项的处理。
OFFDELAY_KEY_WRITE被忽略。
ONMySQL在CREATETABLE中用DELAY_KEY_WRITE选项。
这是默认值。
ALL用启用DELAY_KEY_WRITE选项创建表的相同方法对所有新打开表的进行处理。
如果启用了DELAY_KEY_WRITE,说明使用该项的表的键缓冲区在每次更新索引时不被清空,只有关闭表时才清空。
遮掩盖可以大大加快键的写操作,但如
果你使用该特性,你应用--myisam-recover选项启动服务器,为所有MyISAM表添加自动检查(例如,--myisam-recover=BACKUP,FORCE).
delayed_insert_limit
插入delayed_insert_limit延迟行后,INSERTDELAYED处理器线程检查是否有挂起的SELECT语句。
如果有,在继续插入延迟的行之前,允许它们先执行。
delayed_insert_timeout
INSERTDELAYED处理器线程终止前应等待INSERT语句的时间。
delayed_queue_size
这是各个表中处理INSERTDELAYED语句时队列中行的数量限制。
如果队列满了,执行INSERTDELAYED语句的客户端应等待直到队列内再有空间。
div_precision_increment
该变量说明用/操作符执行除操作的结果可增加的精确度的位数。
默认值是4。
最小和最大值分别为0和30。
下面的示例说明了增加默认值的结果。
engine_condition_pushdown
该变量适用于NDB。
默认值为0(OFF):
如果你执行类似查询SELECT*FROMtWHEREmycol=42,其中mycol为没有索引的列,当满了的表扫描每个NDB节点时,执行该查询。
每个节点使用WHERE条件将每一行发送给MySQL服务器。
如果engine_condition_pushdown被设置为1(ON),该条件“pusheddown”给存储引擎并发送给NDB节点。
每个节点都执行扫描,并只向MySQL服务器发送回匹配条件的行。
expire_logs_days
二进制日志自动删除的天数。
默认值为0,表示“没有自动删除”。
启动时和二进制日志循环时可能删除。
flush
如果用--flush选项启动mysqld该值为ON。
flush_time
如果设为非零值,每隔flush_time秒则关闭所有表以释放硬盘资源并同步未清空的数据。
我们建议只在Windows9x或Me,或有最小资源的系统中使用该选项.
foreign_key_checks
Ifsetto1(thedefault),foreignkeyconstraintsforInnoDBtablesarechecked.Ifsetto0,foreignkeyconstraintsareignored,withacoupleofexceptions.Whenre-creatingatablethatwasdropped,anerrorisreturnedifthetabledefinitiondoesnotconformtotheforeignkeyconstraintsreferencingthetable.Likewise,anALTERTABLEoperationreturnsanerrorifaforeignkeydefinitionisincorrectlyformed.
ft_boolean_syntax
使用INBOOLEANMODE执行的布尔全文搜索支持的操作符系列。
参见12.7.1节,“布尔全文搜索”。
默认变量值为'+-><()~*:
""&|'。
更改这些值的规则是:
o操作符函数由其在字符串内的位置决定。
o替换值必须是14个字符。
o每个字符必须为ASCII码非文字数字字符。
o第1个或第2个字符必须为空格。
o除非语句在第11个字符和第12个字符处引用了操作符,否则不允许复制。
这两个字符可以不相同,但这是唯一可能的两个。
o位置10、13和14(默认设置为‘:
’、‘&’和‘|’)保留用于将来扩展。
ft_max_word_len
FULLTEXT索引中所包含的字的最大长度。
注释:
更改该变量后必须重建FULLTEXT索引。
应使用REPAIRTABLEtbl_nameQUICK。
ft_min_word_len
FULLTEXT索引中所包含的字的最小长度。
注释:
更改该变量后必须重建FULLTEXT索引。
应使用REPAIRTABLEtbl_nameQUICK。
ft_query_expansion_limit
使用WITHQUERYEXPANSION进行全文搜索的最大匹配数。
ft_stopword_file
用于读取全文搜索的停止字清单的文件。
该文件中的所有字都会用到;注释不重要。
默认情况下,使用内嵌式停止字清单(如myisam/ft_static.c文件中所定义)。
将该变量设置为空字符串('')则禁用停止字过滤。
注释:
更改该变量或停止字文件的内容后必须重建FULLTEXT索引。
应使用REPAIRTABLEtbl_nameQUICK。
general_log
Whetherthegeneralquerylogisenabled.Thevaluecanbe0(orOFF)todisablethelogor1(orON)toenablethelog.Thedefaultvaluedependsonwhetherthe--generallogoptionisgiven.Thedestinationforlogoutputiscontrolledbythelogoutput.
是否启用了通用查询日志。
值可以是0(或关闭)禁用日志或1(或在)启用日志。
默认值取决于——通用日志选项。
日志输出的目的地是由日志输出控制.
general_log_file
Thenameofthegeneralquerylogfile.Thedefaultvalueishost_name.log,buttheinitialvaluecanbechangedwiththe--general_log_fileoption.
一般查询日志文件的名称。
默认值是主机名。
日志,但初始值可以改变——通用日志文件选项。
group_concat_max_len
允许的GROUP_CONCAT()函数结果的最大长度。
have_compress
是否zlib压缩库适合该服务器。
如果不适合,不能使用COMPRESS()和UNCOMPRESS()函数。
have_crypt
是否crypt()系统调用适合该服务器。
如果不适合,不能使用CRYPT()函数。
have_csv
如果mysqld支持ARCHIVE表则为YES,否则为NO。
have_dynamic_loading
YESifmysqldsupportsdynamicloadingofplugins,NOifnot.IfthevalueisNO,youcannotuseoptionssuchas--plugin-loadtoloadpluginsatserverstartup,ortheINSTALLPLUGINstatementtoloadpluginsatruntime.
have_geometry
是否服务器支持空间数据类型。
have_innodb
如果mysqld支持InnoDB表则为YES。
如果使用--skip-innodb则为DISABLED。
have_ndbcluster
如果mysqld支持NDBCLUSTER表则为YES。
如果使用了--skip-ndbcluster则为DISABLED。
have_openssl
如果mysqld支持客户端/服务器协议的SSL(加密)则为YES。
have_partitioning
YESifmysqldsupportspartitioning.
have_profiling
YESifstatementprofilingcapabilityispresent,NOifnot.Ifpresent,theprofilingsystemvariablecontrolswhetherthiscapabilityisenabledordisabled.
have_query_cache
如果mysqld支持查询缓存则为YES。
have_rtree_keys
RTREE索引是否可用。
(用于MyISAM表的空间索引)
have_ssl
YESifmysqldsupportsSSLconnections,NOifnot.DISABLEDindicatesthattheserverwascompiledwithSSLsupport,butwasnotstartedwiththeappropriate--ssl-xxxoptions.Formoreinformation.
have_symlink
是否启用符号链接支持。
在Unix中需要用于支持DATADIRECTORY和INDEXDIRECTORY表选项。
hostname
Theserversetsthisvariabletotheserverhostnameatstartup.
init_connect
服务器为每个连接的客户端执行的字符串。
字符串由一个或多个SQL语句组成。
要想指定多个语句,用分号间隔开。
例如,每个客户端开始时默认启用autocommit模式。
没有全局服务器变量可以规定autocommit默认情况下应禁用,但可以用init_connect来获得相同的效果.
init_file
启动服务器时用--init-file选项指定的文件名。
文件中包含服务器启动时要执行的SQL语句。
每个语句必须在同一行中并且不能包括注释。
init_slave
该变量类似init_connect,但是每次SQL线程启动时从服务器应执行该字符串。
该字符串的格式与init_connect变量相同。
innodb_adaptive_flushing
SpecifieswhethertodynamicallyadjusttherateofflushingdirtypagesintheInnoDBbufferpoolbasedontheworkload.AdjustingtheflushratedynamicallyisintendedtoavoidburstsofI/Oactivity.Thissettingisenabledbydefault.SeeSection14.6.3.5,“ConfiguringInnoDBBufferPoolFlushing”formorenformation.
innodb_adaptive_hash_index
WhethertheInnoDBadaptivehashindexisenabledordisabled.Itmaybedesirable,dependingonyourworkload,todynamicallyenableordisableadaptivehashindexingtoimprovequeryperformance.Becausetheadaptivehashindexmaynotbeusefulforallworkloads,conductbenchmarkswithitbothenabledanddisabled,usingrealisticworkloads.
innodb_additional_mem_pool_size
InnoDB用来存储数据目录信息&其它内部数据结构的内存池的大小。
你应用程序里的表越多,你需要在这里分配越多的内存。
如果InnoDB用光了这个池内的内存,InnoDB开始从操作系统分配内存,并且往MySQL错误日志写警告信息。
默认值是1MB。
innodb_autoextend_increment
当自动扩展表空间被填满之时,为扩展而增加的尺寸(MB为单位)。
默认值是8。
这个选项可以在运行时作为全局系统变量而改变。
innodb_autoinc_lock_mode
Thelockmodetouseforgeneratingauto-incrementvalues.Thepermissiblevaluesare0,1,or2,for“traditional”,“consecutive”,or“interleaved”lockmode,respectively.
innodb_buffer_pool_instances
Dividesthebufferpoolintoauser-specifiednumberofseparateregions,eachwithitsownLRUlistandrelateddatastructures,toreducecontentionduringconcurrentmemoryreadandwriteoperations.Thisoptiononlytakeseffectwhenyousetinnodb_buffer_pool_sizetoavalueof1GBormore.Thetotalsizeyouspecifyisdividedamongallthebufferpools.Forbestefficiency,specifyacombinationofinnodb_buffer_pool_instancesandinnodb_buffer_pool_sizesothateachbufferpoolinstanceisatleast1gigabyte.
innodb_buffer_pool_size
InnoDB用来缓存它的数据和索引的内存缓冲区的大小。
你把这个值设得越高,访问表中数据需要得磁盘I/O越少。
在一个专用的数据库服务器上,你可以设置这个参数达机器物理内存大小的80%。
尽管如此,还是不要把它设置得太大,因为对物理内存的竞争可能在操作系统上导致
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- mysql 全局变量 详解