Chinaunix首页 | 论坛 | 博客
  • 博客访问: 201474
  • 博文数量: 87
  • 博客积分: 10
  • 博客等级: 民兵
  • 技术积分: 840
  • 用 户 组: 普通用户
  • 注册时间: 2012-07-18 21:12
文章分类

全部博文(87)

文章存档

2014年(86)

我的朋友

分类: Mysql/postgreSQL

2014-06-23 16:51:38

以下是参数的注释:

1>     skip-external-locking

是否忽略外部锁定,用于多进程条件下为MyISAM数据表进行锁定,你有多台服务器使用同一个数据库目录,那么每台服务器都必须开启external locking 当外部锁定(external-locking)起作用时,每个进程若要访问数据表,则必须等待之前的进程完成操作并解除锁定。由于服务器访问数据表时经常需要等待解锁,因此在单服务器环境下external locking会让MySQL性能下降. 老版本的写法为:skip-locking

2> skip-name-resolve

禁用dns解析,在mysql的授权表中就不能使用主机名,只能使用IP. 当一个新连接连接mysql服务器时,mysql服务器会对此次连接的合法性进行判定,具体通过查询mysql.user表实现。mysql的权限设置将userhost(客户端的地址)联系起来,只有当两者都符合条件时才能进行下一步认证.

3> big_tables

使用--big-tables选项启动mysqld以总将临时表存储在磁盘上.

4> local_infile = 0

是否允许在使用load data infile 命令时 使用客户端文件 默认为OFF0即为不允许

5> character-set-server=utf8

客户端的字符集设置为UTF-8

6>datadir=/usr/local/mysql/data/

设置数据文件目录

7>basedir=usr/local/mysql/

设置mysqlbase目录

8> table_cache=16

指定表高速缓存的大小.每次MySQL访问表,每当MySQL访问一个表时,如果在表缓冲区中还有空间,该表就被打开并放入其中,这样可以更快地访问表内容,如果这个表在cache中,那MySQL就直接在cache中访问.在内存中访问比在磁盘上访问更快,同时也减少了I/O.

9> max_connections = 200

mysql server允许的最大链接数量

10> wait_timeout = 28800

  

11> interactive_timeout = 28800

服务器关闭交互式连接前等待活动的秒数     

 交互式客户端定义为在mysql_real_connect()中使用CLIENT_INTERACTIVE选项的客户端

12> thread_cache= 30

设置Thread cache池中可以缓存的连接线程的最大数量

16>= 10

如果某个通信端口的读操作中断了,在放弃前重试多次。在FreeBSD中该值应设得很高,因为内部中断将发送至所有线程

17> = 10

mysqld服务器Bad handshake响应前等待连接包的秒数

单位:.是设定远程用户必须回应PORT类型数据连接的最大时间。

18>= 30

中断读前等待连接的其它数据的秒数。当服务器从客户端读数时,net_read_timeout指控制何时中断的超时值。当服务器向客户端写时,net_write_timeout指控制何时中断的超时值

19> = 0

设置查询缓存的类型
0
关闭查询缓存功能
1
:缓存出通过sql_no_cache明确提示不缓存之外的所有query
2
:仅仅缓存通过sql_cache 明确提示须要缓存的query

20> = 8MB

设置query cache 可以接受的最大结果集,超出参数设置范围的结果集将不会被缓存

21> query_cache_min_res_unit = 4KB

内存块分配的最小单元非常重要,设置过大可能增加内存碎片的概率发生,太小又可能增加内存分配的消耗,为此在系统平稳运行一个阶段性后,可参考公式的计算值:查询缓存最小内存块 = (query_cache_size – Qcache_free_memory) / Qcache_queries_in_cache

22>= 56M

查询缓存的大小. 0 即为关闭查询缓存功能

23>= 30

24> = 999999999

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

25>

服务器关闭交互式连接前等待活动的秒数。交互式客户端定义为在mysql_real_connect()中使用CLIENT_INTERACTIVE选项的客户端。

26> = 2M

仅作用于使用 MyISAM存储引擎,用来缓存批量插入数据的时候临时缓存写入数据。当我们使用如下几种数据写入语句的时候,会使用这个内存区域来缓存批量结构的数据以帮助批量写入数据文件:insert … select …
insert … values (…) ,(…),(…)…
load data infile… into… (
非空表)

27> = 8M

当在REPAIR  TABLE或用CREATE  INDEX创建索引或ALTERTABLE过程中排序 MyISAM索引分配的缓冲区大小  范围:4B~4GB 默认8MB
设置恢复表之时使用的缓冲区的尺寸

28>= 2M

1 每个线程连续扫描时为扫描的每个表分配的缓冲区的大小(字节)。如果进行多次连续扫描,可能需要增加该值。每个线程进行顺序扫描的时候都会产生该buffer ,而且同一个Query中如果有多个表进行全表扫描,会产生多个该buffer
所以在设置的时候尽量不要太高 避免因为并发太大造成内存不够

29>= 512K

设置进行随机读的时候所使用的缓冲区,此参数和read_buffer_size所设置的buffer相反,一个是顺序读的时候使用,一个是随机读的时候使用,但是两者都是针对线程的设置,每个线程都可能产生两种buffer中的任何一个.

30> = 64M

联合查询操作所能使用的缓冲区大小,当我们的Join ALL(全表扫描) ,index(全索引扫描),rang (索引范围扫描)或者index_merge(查询中同时使用两个(或更多)索引,然后对索引结果进行merge 之后再读取表数据) 的时候使用的Buffer;实际上这种Join 被称为Full Join。实际上参与Join 的每一个表都需要一个Join Buffer,所以在Join 出现的时候,至少是两个该参数对应的分配内存也是每连接独享!

31>= 20M

设置MEMORY (HEAP)表可以增长到的最大空间大小.

32> = 20M

限制mysql内部产生的内存临时表的阈值,超过这个值会被转移到磁盘上,并不是实际就要分配的这么大的内存数量.

33>

启动mysql,不启动复制

34>default-storage-engine = innodb

设置默认存储引擎为INOODB

35> =

Innodb数据文件的家目录。可以在innodb_data_file_path参数中设置,这里可以不设置,设置的话,值为:/usr/local/mysql/data/

36>=/usr/local/mysql/data/ibdata1:200M;/usr/local/mysql/data/ibdata2:200M:autoextend

到单独数据文件和它们尺寸的路径。通过把innodb_data_home_dir连接到这里指定的每个路径,到每个数据文件的完整目录路径可被获得。文件大小通过给尺寸值尾加MGMB或者GB1024MB)为单位被指定。文件尺寸的和至少是10MB

37> = /usr/local/mysql/data/

InnoDB日志文件的目录路径。

38>innodb_buffer_pool_size=2056M

设置innodb数据和索引内存缓存空间的大小 

39>innodb_additional_mem_pool_size=16M

InnoDB用来存储数据目录信息&其它内部数据结构的内存池的大小。你应用程序里的表越多,你需要在这里分配越多的内存。如果InnoDB用光了这个池内的内存,InnoDB开始从操作系统分配内存,并且往MySQL错误日志写警告信息

40>= 2

在日志组里日志文件的数目

41> innodb_log_file_size=256M

在日志组里每个日志文件的大小。在32位计算机上日志文件的合并大小必须少于4GB

42> =32M

设置innodb存放log的缓冲区的大小

一个大的日志缓冲允许大型事务运行而不需要在事务提交之前往磁盘写日志。因此,如果你有大型事务,使日志缓冲区更大以节约磁盘I/O

43> innodb_flush_log_at_trx_commit=2

控制事务的提交方式
分配原则:这个参数只有3个值,0,1,2

当这个值为0时:日志缓冲每秒一次地被写到日志文件,并且对日志文件做到磁盘操作的刷新,但是在一个事务提交不做任何操作。mysqld进程的崩溃会删除 崩溃前最后一秒的事务。从以上分析,当这个值不为1时,可以取得较好的性能,但遇到异常会有损失,所以需要根据自已的情况去衡量。
当这个值为1时:innodb 的事务LOG在每次提交后写入日志文件,并对日志做刷新到磁盘。这个可以做到不丢任何一个事务。
当这个值为2时:在每个提交,日志缓冲被写到日志文件,但不对日志文件做到磁盘操作的刷新,在对日志文件向磁盘刷新的操作每秒发生一次。但需要注意的是, 由于进程调用方面的问题,并不能保证每秒100%的发生。从而在性能上是最快的。但操作系统崩溃或掉电才会删除最后一秒的事务。只要系统没有崩溃,并没有 丢失数据比设置成0更安全.

44>=50

设置innodb事务等待锁定资源的最长时间 ,当等待超过该时间长度时,innodb会自动结束改事务并提示超时.

45>

默认遇到超时只回滚事务最后一个query,指定参数innodb_rollback_on_timeout后,遇到超时将回滚整个事务.这个参数在mysql5.1.15版本之后生效

46> innodb_checksums=0

设置innodb从磁盘读取数据块的时候是否进行checksums校验 默认为ON 可在启动设置为OFF  InnoDB在所有对磁盘的页面读取上使用校验和验证以确保 额外容错 防止 硬件损坏 数据文件。

47>0

设置为ON或者1(默认地),这个变量允许InnoDB支持在分布式事务

不需要使用分布式事务,你可以通过设置这个选项为OFF0来禁止这个变量,以减少磁盘刷新的次数并获得更好的InnoDB性能

48>

默认地,InnoDB存储所有数据两次,第一次存储到doublewrite缓冲,然后存储到确实的数据文件,这个选项可以被用来禁止这个功能。这个选项默认是允许的。

49> innodb_thread_concurrency  = 10

这个参数主要控制innodb内部的并发处理线程的数量的最大值,系统内部有相应的检测机制进行检测控制并发线程的数量 innodb建议设置为CPU个数和磁盘个数之和.

50>innodb_concurrency_tickets  = 100

控制一个并发进程在innodb并发控制允许的情况下 能够自由进行处理的次数 一旦处理次数用完 该线程必须重新申请新的free ticket

51>innodb_locks_unsafe_for_binlog=1

InnoDB搜索和索引扫描中关闭间隙锁锁定。这个选项的默认值是假(false

52> = REPEATABLE-READ 

事务隔离级别的设置:可重复读

可选参数有:READ-UNCOMMITTED, READ-COMMITTED, REPEATABLE-READ, SERIALIZABLE.

 

需要修改的参数的注释:

= 16M

在系统中对数据进行排序的时候使用的Buffer
Sort Buffer
同样是针对单个Thread 的,所以当多个Thread 同时进行排序的时候,系统中就会出现多个Sort Buffer。一般我们可以通过增大Sort Buffer 的大小来提高ORDER BY 或者是GROUP BY的处理性能。

2> key_buffer_size= 256M

用来设置用于缓存 MyISAM存储引擎索引文件的内存区域大小,如果我们有足够的内存,这个缓存区域最好是能够存放下我们所有的 MyISAM 引擎表的所有索引,以尽可能提高性能。

= 1M

myisamchk检查、修复、优化MyISAM表或库表的信息时所分配的内存。相同情况下使用到的参数还有 key_buffer ,read_buffer,sort_buffer.注意这四个参数的设置均不能大于系统目前自由内存.

=  1016

replication同步数据的时候须设定 server-id。基本上没有什么特别的限制,只要Master Slave server-id 不一样即可,但其值必需为 1 2^32 -1 之间。

5> read_buffer_size= 2M

每个线程连续扫描时为扫描的每个表分配的缓冲区的大小(字节) ,如果进行多次连续扫描,可能需要增加该值。

6>socket= /usr/local/mysql/tmp/mysql.sock

设置mysql socket的目录

 

 

阅读(1547) | 评论(0) | 转发(0) |
0

上一篇:my.cnf初始化配置

下一篇:vmstat详解(转)

给主人留下些什么吧!~~