Mysql 配置参数详解以及优化配置

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

mysql有以下几种日志:

错误日志:log-err

查询日志:log

慢查询日志:log-slow-queries

更新日志:log-update

二进制日志:log-bin

要把日志生成在/var/log 目录下(是系统日志存放的地方,只有root 账号有写权限),需要MySQL 进程对这个目录有读写权限,一般是不这么做的,也考虑到安全问题,包括MySQL 本身的数据安全,因为对MySQL 的所有操作,都会记录到常规查询日志。MySQL 的日志就不要用/var/log/ 目录下。

---------------------------------------------------------------------2 f

default-character-set = utf8

port= 3306

socket= /tmp/mysql.sock

no-auto-rehash

#default-character-set = utf8

user= mysql

port= 3306

socket= /tmp/mysql.sock

basedir = /usr/local/webserver/mysql

datadir = /data0/mysql/3306/data

open_files_limit= 10240

back_log = 600

max_connections = 3000 实际MySQL服务器允许的最大连接数16384;

max_connect_errors = 6000可以允许多少个错误连接

table_cache = 1024高速缓存的大小.table_cache的值在2G内存以下的机器中的值默认时256到512,如果机器有4G内存,则默认这个值是2048,但这决意味着机器内存越大,这个值应该越大,因为table_cache加大后,使得mysql对SQL 响应的速度更快了,不可避免的会产生更多的死锁(dead lock),这样反而使得数据库整个一套操作慢了下来,严重影响性能。

external-locking = FALSE

max_allowed_packet = 32M

sort_buffer_size = 2M 是一个connection级参数,在每个connection第一次需要使用这个buffer的时候,一次性分配设置的内存.并不是越大越好,由于是connection级的参数,过大的设置+高并发可能会耗尽系统内存资源。

join_buffer_size = 2M

thread_cache_size = 64重新利用保存在缓存中线程的数量,当断开连接时如果缓存中还有空间,那么客户端的线程将被放到缓存中,如果线程重新被请求,那么请

求将从缓存中读取,如果缓存中是空的或者是新的请求,那么这个线程将被重新创建,如果有很多新的线程,增加这个值可以改善系统性能

根据物理内存设置规则如下:

1G---> 8

2G---> 16

3G---> 32

>3G---> 64

thread_concurrency = 16 对mysql的性能影响很大, 在多个cpu(或多核)的情况下,错误设置了thread_concurrency的值, 会导致mysql不能充分利用多cpu(或多核), 出现同一时刻只能一个cpu(或核)在工作的情况。

应设为CPU核数的2倍. 比如有一个双核的CPU, 那么thread_concurrency的应该为4; 2个双核的cpu, thread_concurrency的值应为8.

query_cache_size = 32M 缓存机制简单的说就是缓存sql文本及查询结果,如果运行相同的sql,服务器直接从缓存中取到结果,而不需要再去解析和执行sql。如果表更改了,那么使用这个表的所有缓冲查询将不再有效,查询缓存值的相关条目被清空

query_cache_limit = 2M 单个查询能够使用的缓冲区大小.缺省为1M

query_cache_min_res_unit = 2k 它指定分配缓冲区空间的最小单位,缺省为4K。检查状态值Qcache_free_blocks,如果该值非常大,则表明缓冲区中碎片很多,这就表明查询结果都比较小,此时需要减小query_cache_min_res_unit

default-storage-engine = MyISAM

default_table_type = MyISAM

thread_stack = 192K

transaction_isolation = READ-COMMITTED设置所有连接的默认事务隔离级

tmp_table_size = 256M 临时HEAP数据表的最大长度

max_heap_table_size = 256M HEAP数据表(内存表)的最大长度(默认设置是16M); long_query_time = 1

log_long_format

log-bin = /data0/mysql/3306/binlog

binlog_cache_size = 8M 为binary log指定在查询请求处理过程中SQL 查询语句使用的缓存大小

binlog_format = MIXED

max_binlog_cache_size = 8M

max_binlog_size = 512M

expire_logs_days = 7

key_buffer_size = 256M索引缓冲区的大小,严格说是它决定了数据库索引处理的速度,尤其是索引读的速度

read_buffer_size = 1M读查询操作所能使用的缓冲区大小,该参数对应的分配内存也是每连接独享.

read_rnd_buffer_size = 16M 针对按某种特定顺序(如ORDER BY子句)输出的查询结果(默认256K) 加速排序操作后的读数据,提高读分类行的速度。

相关文档
最新文档