Think before you speak, read before you think.

mysql参数配置

by

in

[root@mail ~]# cat /etc/my.cnf
[mysql]
prompt = “(\u@\h)[\d]> ”
no_auto_rehash
default_character_set = utf8 #指定客户端连接字符集,等同set names utf8. <character_set_client, character_set_connection, character_set_results>。

[mysqld]
socket = /tmp/mysql.sock #mysql sock文件存放目录(该目录可以改动,但必需可以让mysql有写权限)
user = mysql #启动mysql数据库的用户
port = 3306 #mysql守护进程启动时监听的端口
skip_external_locking #避免mysql外部锁定,减少出错机率增强稳定性(mysql5.5配置)
skip_name_resolve #启动时和运行时跳过域名查询(mysql5.5不能用)
query_cache_type = 1 #0或OFF(禁止使用缓存);1或ON(充许使用缓存,SELECT SQL_NO_CACHE查询语句除外);2或DEMAND(仅对SELECT SQL_CACH查询语句启动缓存)
query_cache_limit = 8M #最大缓存结果大小
query_cache_min_res_unit = 4k
query_cache_size = 512M #查询缓存大小
read_buffer_size = 2M #select时所能使用的缓冲区大小,每连接独享。
read_rnd_buffer_size = 16M #order by | group by所使用的排序缓存大小,每连接独享。
open_files_limit = 102400 #MySQL文件描述符限制
sort_buffer_size = 4M #order by | group by,每连接独享。
join_buffer_size = 2M #外链缓冲大小,每连接独享。
key_buffer = 1G
key_buffer_size = 1G
table_cache = 2048 #为所有线程打开表的数量,同时须修改文件描述符默认大小。增加些值可有效避免频繁打开表产生的开销。
max_connections = 2048 #最大允许多少个tcp进程连接
back_log = 1000 #指定可能的连接数,当MySQL主线程在很短的时间内接收到非常多的请求时,该参数生效。达到该参数阀值会短暂停止响应新的请求(推置值 connection x 2)。
max_connect_errors = 102400 #mysql实例在大量发时,而mysql本身处理不过来,就会产生最大连接错误,当达到设定值后会死锁实例,新的连接将无法进来,而老的连接正常。mysql有相应的自动timeout机制来控制将最大连接错误回滚成0。
wait_timeout = 3600 #断开空闲时间超过此值的连接
interactive_timeout = 3600 #服务器在关闭之前在一个交互连接上等待的秒数(一个交互的客户端被定义为对mysql_real_connect()使用CLIENT_INTERACTIVE选项的客户),默认为28800
tmp_table_size = 512M #临时表大小
slow_query_log = True #记录慢查询,对SQL优化很有帮助
slow_launch_time = 1 #设置执行时间多长的查询为慢查询, 默认单位为秒(s)
server_id = 61 #服务器id 主从时必需设置
binlog_ignore_db = mysql,test
log_bin = /data0/db-binlog/hupu.com/default/mysql-bin #打开binlog日志
log_bin_index = /data0/db-binlog/hupu.com/default/mysql-bin.index #binlog 索引文件
binlog_format = MIXED #binlog格式[STATEMENT(基于语句)|ROW(基于行)|MIXED(混合模式)]
binlog_cache_size = 4M #binlog 缓存大小,调节该值大小可避免使用文件
max_binlog_cache_size = 8M #默认4GB,限制缓存多语句事务的缓冲区总大小,当某个事务大于该值,将会失败并回滚
max_binlog_size = 512M #指定binlog文件最大容量,超过些值会自动回滚binlog
expire_logs_days = 60 #binlog保存最近7天的文件
bulk_insert_buffer_size = 64M #insert … select … ,insert …(..),(..),(..) ,load data infile 有较大的加速效果, 针对每线程
myisam_sort_buffer_size = 512M #myisam引擎排序缓冲大小,即MyISAM表发生变化时重新排序所需的缓冲区大小
myisam_max_sort_file_size = 1G #myisam引擎最大允许排序文件大小
myisam_repair_threads = 1 #mysql修复线程数
myisam_recover #启动MySQL时自动修复损坏索引的表
myisam_sort_buffer_size = 512M #表恢复时使用的缓冲区大小
max_heap_table_size = 200M
max_allowed_packet = 2G #导入时指定单表最大文件
thread_concurrency = 8 #最大的并发连接线程数,取CPU的核心数x2,超线程CPU再x2
thread_cache_size = 1024 #每个thread cache 池可以最多缓存多少个线程
thread_stack = 192K #每个线程被创建时分配的内存空间大小

innodb_support_xa = False #开启或关闭Innodb分布式事务. 如未使用分布式事务, 强列建议关闭. 减少磁盘刷新次数.
innodb_additional_mem_pool_size = 8M #存储数据目录信息和其它内部数据结构的内存池大小, 表越多需要的内存也越多.默认为1MB
innodb_buffer_pool_size = 2G #Innodb 表缓存池大小
innodb_file_io_threads = 4 #innodb io线程数,默认为4个. 在unix类系统中设置大于4的值是没有意义的.windows则不同.
innodb_thread_concurrency = 0 #innodb 并发线程数.设置值大于0时,innodb每次接MySQL线程调用时都将进一次并发性检测,看是否大于些值.如果show innodb status 中发现大量”waiting in InnoDB queue ” 则可将值设成0.让系统自已控制
innodb_flush_log_at_trx_commit = 2 #innodb日志写入磁盘设置,0 : 每秒一次 ,1:每个事务完成时提交, 2:每次提交但不对日志写回磁盘操作,刷到磁盘上还是每秒一次.不受事务结束引响. 当设置为0时任何导至mysqld进程的崩溃都会删除前一秒的事务日志,当设为2时,只有操作系统崩溃或掉电才会删除最后一秒的事务.(当然磁盘回写也会导至事务的丢失,而这是磁盘的默认选项). 该选项默认值为 1.
innodb_log_buffer_size = 8M #innodb log缓存大小,默认为1MB. 频繁写入时才修改此值到8MB或以上,因每秒(跟据innodb_flush_log_at_trx_commit值决定刷新缓存到磁盘的时间间隙)会被刷一次到磁盘. 不建议加很大
innodb_log_files_in_group = 3
innodb_max_dirty_pages_pct = 80
innodb_lock_wait_timeout = 60 #Innodb引擎表死锁时等待的时间, 超出此时间事务还未执行成功, 此事务将回滚. 跟据需要设置些参数
innodb_file_per_table = 1 #为每个innodb 表单独创建文件存放. 默认所有innodb表全部存放在ibdata1
innodb_open_files = 1024 #Innodb 一次最多可以打开多少表,默认为300,最少值为10. 些选项跟innodb_file_per_table是多表还是单表存放innodb文件相关
innodb_read_io_threads = 8 #Innodb 读取磁盘io线程数,默认为4. 如果磁盘性能OK, 可以加大些值来提高性能。
innodb_write_io_threads = 4 #Innodb 写入磁盘io线程数,默认为4. 如果磁盘性能OK, 可以加大些值来提高性能。
innodb_io_capacity = 200 #Innodb 刷新脏页到磁盘,指每秒刷新200个脏页,此值为默认。写密集型DB需加大此值。
innodb_max_dirty_pages_pct = 80 #加快innodb脏页刷新频率减少恢得利 时间,也可保证磁盘的IP负载。值为百分比,默认90%
innodb_adaptive_flushing = True #自适应刷新脏页,
big_tables = True #MySQL 大表支持

[mysqldump]
quick
max_allowed_packet = 2G #导出时指定单表最大文件


Comments

Leave a Reply

Your email address will not be published. Required fields are marked *