mysql配置文件一些参数解释

back_log=50:是操作系统在监听队列中所能保持的连接数,队列保存了在MYSQL连接管理器线程处理之前的连接。如果有非常高的连接率并且出现 “connection refused”报错,就应该增加此处的值,检查操作系统文档获取这个变量的最大值。如果将back_log设定到比你操作系统限制更高的值,将没有效 果。
skip-networking:不在TCP/IP端口进行监听,如果所有进程都是在同一台服务器连接到本地的musqld,这样设置是增强安全的方法,所有mysqld的连接都是通过Unix sockets或者命名管道进行的。
max_connections=100:mysql服务所允许的同时会话数的上限,其中一个连接将被SUPER权限保留作为管理员登录,即使已经达到了连接数的上限
max_connect_errors=10:每个客户端连接最大的错误允许数量,如果达到此限制,这个客户端将会被mysql服务阻止直到执行 “FLUSH HOSTS”或者服务重启,非法的密码以及其他在连接时的错误会增加此值,察看:Aborted_connects“状态来获取全局计数器
table_cache=2048: 所有线程所打开表的数量,增加此值就增加了mysqld所需要的文件描述符数量,需要确认在[mysqld_safe]中“open-files-limit”变量设置打开文件数量允许至少4096
external-locking: 允许外部文件级别的锁,打开文件锁会对性能造成负面影响,所以只有你在同样的文件上运行多个数据库实例时才使用此选项,或者你在文件层面上使用了其他一些软件依赖来锁定MyISAM表
max_allow_packet=16M: 服务所能处理的请求包的最大大小以及服务所能处理的最大的请求大小(当与大的BOLB字段一起工作时相当必要),每个连接独立的大小,大小动态增加。                                                                          binlog_cache_size=1M: 在一个事务中binlog为了记录SQL状态所持有的cache大小,如果经常使用大的多声明的事务,可以增加此值来获取更大的性能。所有从事务来的状态 都将被缓冲在binlog缓冲中然后一次性写入到binlog中,如果事务比此值大,会使用磁盘上的临时文件来替代,此缓冲在每个连接的事务第一次更新状 态时被创建
max_heap_table_size=64M: 独立的内存表所允许的最大容量,此选项为了防止意外创建一个超大的内存表导致用尽所有的内存资源
sort_buffer_size=8M: 排序缓冲被用来处理类似ORDER BY以及GROUP BY队列所引起的排序,如果排序后的数据无法放入排序缓冲,一个用来替代的基于磁盘的合并分类会被使用,察看“Sort_merge_passes”状态 变量,在排序发生时由每个线程分配。
join_buffer_size=8M:此缓冲被使用来优化全联合(full JOINs不带索引的联合),类似的联合在极大多数情况下有非常糟糕的性能表现,但是将此值设大能够减轻性能的影响。通过 “Select_full_join”状态变量察看全联合的数量,当全联合发生时,在每个线程分配。
thread_cache_size=8: 在cache中保留多少线程用于重用,当一个客户端断开连接后,如果cache中的线程还少于thread_cache_size,则客户端线程被放入 cache中,这可以在你需要大量新连接的时候极大的减少线程创建的开销
thread_concurrency=8: 允许应用程序给予线程系统一个提示在同一时间给予渴望被运行的线程数量,此值只对于支持thread_concurrency()函数的系统有意义,可以 尝试使用[CPU数量]*(2..4)来作为thread_concurrency的值
query_cache_size=64M: 查询缓冲常被用来缓冲SELECT的结果并且在下一次同样查询的时候不再执行直接返回结果,打开查询缓冲可以极大提高服务器速度,如果你有大量的相同查询 并且很少修改表。查看“Qcache_lowmem_prunes”状态变量来检查是否当前值对于你的负载来说说否足够高,查询缓冲也许引起性能下降而不 是性能提升。
query_cache_limit=2M: 只有少于此设定值的结果才会被缓冲,此设置用来保护查询缓冲,防止一个极大的结果集将其他所有的查询结果都覆盖
ft_min_word_len=4: 被全文检索索引的最小的字长,你也希望减少它,如果需要搜索更短字的时候,注意在修改此值之后,需要重建你的FULLTEXT索引
memlock: 如果你的系统支持memlock()函数,你也许希望打开此选项用以让运行中的mysql在内存高度紧张的时候,数据在内存中保持锁定并且防止可能被swapping out,此选项对性能有益
default_table_type=MYISAM:当创建新表时作为默认使用的表类型,如果在创建表示没有特别执行表类型,将会使用此值
thread_stack=192k: 线程使用的堆大小,此容量的内存在每次连接时被预留,Mysql本身常不会需要超过64k的内存,如果你使用你自己的需要大量堆的UDF函数,或者你的操 作系统对于某些操作需要更多的堆,你也许需要将其设置的更高一点
transaction_isolation=REPEATABLE-READ: 设定默认的事务隔离级别,可用的隔离级别如下:
READ-UNCOMMITTED,READ-COMMITTED,REPEATABLE-READ,SERIALIZABLE
tmp_table_size=64M: 内存(内存中)临时表的最大大小,如果一个表增长到比此值更大,将会自动转换为基于磁盘的表,此限制是针对单个表的,而不是总和。
log-bin=mysql-bin: 打开二进制日志功能,在复制配置中,作为MASTER主服务器必须打开此项,如果需要从最后的备份中做基于时间点的恢复,也同样需要二进制日志
log_slave_updates: 如果使用链式从服务器结构的复制模式(A>B>C),需要在服务器B上打开此项,此选项打开在从线程上重做过的更新日志,并将其写入从服务器的二进制日志
log: 打开全查询日志,所有的由服务器接受到的查询都会被记录下来,这对调试非常有用,在生产环境中常常关闭此项。
log_warnings: 将警告打印输出到错误log文件,如果你对于mysql有任何问题,应该打开警告log并且仔细审察错误日志,查出可能的原因
log_slow_queries: 记录慢查询,慢查询是指消耗了比“long_query_time”定义的更多时间的查询,如果log_long_format被打开,那些没有使用索引的查询也会被记录
long_query_time=2: 所有的使用了比这个时间(以秒为单位)更多的查询会被认为是慢速查询不要在这里使用1,否则会导致所有的查询,甚至非常快的查询页被记录下来
log_long_format: 在慢速日志中记录更多的信息,打开此项会记录使得那些没有使用索引的查询也被作为到慢速查询附加到慢速日志里
tmpdir=/tmp: 此目录被mysql用来保存临时文件,它被用来处理基于磁盘的大型排序,和内部排序一样以及简单的临时表。如果你不创建非常大的临时表,将其放置到 swapfs/tmpfs文件系统上也许比较好,另一种选择是可以将其放置在独立的磁盘上,也可以使用“;“来放置多个路径,他们会按照round- robin方法轮询使用
server-id=1: 唯一的服务辨识号,数值位于1到2^32-1之间。此值在master和slave上都需要设置,如果”master-host“没有被设置,则默认为1,如果忽略此选项,Mysql不会作为master生效                                                            skip-innodb: 如果你的mysql服务包含InnoDB支持但是并不打算使用的话,使用此选项会节省内存以及磁盘空间,并且加速某些部分
innodb_additional_mem_pool_size=16M: 附加的内存池被InnoDB用来保存metadata信息如果InnoDB为此目的需要更多的内存,它会开始从OS这里申请内存,由于这个操作在大多数现 代操作系统上已经足够快,一般不需要修改此值
Innodb_buffer_pool_size=2G: InnoDB使用一个缓冲池来保持索引和原始数据,不像MyISAM,这里设置越大,在存取表里面数据时所需要的磁盘I/O越少,在一个独立使用的数据库 服务器上,你可以设置这个变量到服务器物理内存大小的80%,不要设置过大,否则由于物理内存的竞争可能导致操作系统的换页颠簸,注意在32位系统上你每 个进程可能被限制在2-3.5G用户层面的内存限制。
innodb_data_file_path=ibdata1:10M:autoextend: InnoDB将数据保存在一个或多个数据文件中成为表空间,如果你只有单个逻辑驱动保存你的数据,一个单个的自增文件就足够好了,其他情况下,每个设备一 个文件一般都是个好的选择。
innodb_data_home_dir= : 设置此选项如果你希望innoDB表空间文件被保存在其他分区,默认保存在MYSQL的datadir中。
innodb_file_io_threads=4: 用来同步IO操作的IO线程的数量,此值在Unix下被硬编码成4
innodb_force_recovery=1: 如果你发现innoDB表空间损坏,设置此值为一个非零值可能帮助你导出你的表
innodb_thread_concurrency=16: 在InnoDB核心内的允许线程数量,最忧值依赖于应用程序,硬件以及操作系统的调度方式,过高的值可能导致线程的互斥颠簸。
innodb_flush_log_at_trx_commit=1: 如果设置为1,InnoDB会在每次提交后刷新事务到磁盘上,这提供了完整的ACID行为,如果你愿意对事务安全折中,并且你正在运行一个小的事务,你可 以将次值设置到0或者2来减少由事务日志引起的磁盘I/O,0代表日志只大约每秒写入日志文件并且文件刷新到磁盘
2代表日志写入日志文件在每次提交后,但是日志文件只有大约每秒才会刷新到磁盘上。
innodb_fast_shutdown: 加速InnoDB的关闭,这会阻止InnoDB在关闭时做全清除以及插入缓冲合并。这可能极大增加关机时间,但是取而代之的是InnoDB可能在下次启动时做这些操作
innodb_log_buffer_size: 用来缓冲日志数据的缓冲区的大小,当此值快满时,InnoDB将必须刷新数据到磁盘由于基本上每秒都会刷新一次,所以没必要将此值设置的太大(甚至对于长事务而言)
innodb_log_file_size=256M: 在日志组中每个日志文件的大小,你应该设置日志文件总和大小到你缓冲池大小的25%~100%来避免在日志文件覆写上不必要的缓冲池刷新行为,不论如何, 注意一个大的日志文件大小会增加恢复进程所需要的时间
innodb_log_files_in_group=3: 在日志组中的文件总数通常来说2~3是比较好的
innodb_log_group_home_dir: InnoDB的日志文件所在位置,默认是mysql的datadir,你可以将其指定到一个独立的硬盘上或RAID1卷上来提高性能
innodb_max_dirty_pages_pct=90: 在InnoDB缓冲池中最大允许的脏页面比例,如果达到限额,InnoDB会开始刷新他们防止他们妨碍到干净数据页面
innodb_flush_method=O_SYNC: InnoDB用来刷新日志的方法,表空间总是使用双重写刷新方法默认值是”fdatasync“,另一个是”O_DSYNC"
innodb_lock_wait_timeout=120: 在被回滚前,一个InnoDB的事务应该等待一个锁被批准多久 InnoDB在其拥有的锁表中自动检测事务死锁并且回滚事务。如果使用LOCK TABLES指令,或者在同样事务中使用除了InnoDB以外的其他事务安全的存储引擎,那么一个死锁可能发生而InnoDB无法注意到,这种情况下 timeout值对于解决这种问题就非常有帮助

你可能感兴趣的:(mysql,mysql参数)