转载-企业环境下MySQL5.5调优

参照 腾讯云 和ucloud my.cnf 以及网上找的资料

整理出来的 my.cnf , 以后修改任何参数都会继续更新,目前是在测试阶段;

物理机 : ubuntu14.04 配置 8core 32G

mysql : 5.5.62

调优配置如下:

[client]
port = 3306
socket = /var/run/mysqld/mysqld.sock
default-character-set = utf8 [mysqld_safe]
socket = /var/run/mysqld/mysqld.sock [mysqld]
user = mysql
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
port = 3306
basedir = /usr
datadir = /var/lib/mysql
tmpdir = /tmp
lc-messages-dir = /usr/share/mysql
skip-external-locking key_buffer = 256M
max_allowed_packet = 1073741824
thread_stack = 512K
thread_cache_size = 50
max_connections = 5000
max_connect_errors = 1000000
table_cache = 4096
max_heap_table_size = 128M
open_files_limit = 102400
back_log = 2000
thread_concurrency = 20 sort_buffer_size = 524288
ft_min_word_len = 4
query_cache_size = 0 log_error = /var/log/mysql/error.log
log_slow_queries = /var/log/mysql/mysql-slow.log
long_query_time = 3 server-id = 1
log_bin = /var/log/mysql/mysql-bin.log
expire_logs_days = 2 tmp_table_size = 4294967295 #default_table_type = InnoDB #loose-skip-bdb
default-storage-engine =InnoDB
innodb_file_format=barracuda
#ROW_FORMAT=COMPRESSED
innodb_additional_mem_pool_size = 64M
innodb_buffer_pool_size = 6G
innodb_data_file_path = ibdata1:128M:autoextend
innodb_read_io_threads = 8
innodb_write_io_threads = 8
innodb_thread_concurrency = 20
innodb_flush_log_at_trx_commit = 2
innodb_log_buffer_size = 8388608
innodb_log_file_size = 512M
innodb_log_files_in_group = 3
innodb_max_dirty_pages_pct = 90
innodb_lock_wait_timeout = 120 [mysqldump]
quick
quote-names
max_allowed_packet = 1073741824 [mysql]
default-character-set = utf8 [isamchk]
key_buffer = 256M !includedir /etc/mysql/conf.d/

附一些参数的简单解释

# The MySQL database server configuration file.
#
# You can copy this to one of:
# - "/etc/mysql/my.cnf" to set global options,
# - "~/.my.cnf" to set user-specific options.
#
# One can use all long options that the program supports.
# Run program with --help to get a list of available options and with
# --print-defaults to see which it would actually understand and use.
#
# For explanations see
# http://dev.mysql.com/doc/mysql/en/server-system-variables.html # This will be passed to all mysql clients
# It has been reported that passwords should be enclosed with ticks/quotes
# escpecially if they contain "#" chars...
# Remember to edit /etc/mysql/debian.cnf when changing the socket location.
[client]
port = 3306
socket = /var/run/mysqld/mysqld.sock # Here is entries for some specific programs
# The following values assume you have at least 32M ram # This was formally known as [safe_mysqld]. Both versions are currently parsed.
[mysqld_safe]
socket = /var/run/mysqld/mysqld.sock
nice = 0
open-files-limit = 8192 #增加每个进程的可打开文件数量
[mysqld]
#
# * Basic Settings
#
user = mysql
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
port = 3306
basedir = /usr
datadir = /var/lib/mysql
tmpdir = /tmp #记录msyql临时文件
#back_log = 300
lc-messages-dir = /usr/share/mysql
skip-external-locking #允许外部文件级别的锁. 打开文件锁会对性能造成负面影响
#
# Instead of skip-networking the default is now to listen only on
# localhost which is more compatible and is not less secure.
#bind-address = 0.0.0.0 #控制可连接数据库的 客户端
#
# * Fine Tuning
#
key_buffer = 16M #可变大 待查询 用于索引块缓冲区大小
max_allowed_packet = 16M
thread_stack = 192K #线程使用的堆大小. 此容量的内存在每次连接时被预留
thread_cache_size = 8 #cache中保留多少线程用于重用
# This replaces the startup script and checks MyISAM tables if needed
# the first time they are touched
myisam-recover = BACKUP
max_connections = 100 #mysql 允许 同时会话的上限
max_connect_errors = 30 #mysql 允许最大的错误连接上限
table_cache = 64 #mysql所有线程打开表的数量 ,需对应的open_files_limit 允许
max_heap_table_size = 128M #独立的内存表所允许的最大容量(防止意外创建一个超大的内存表导致用尽所有的内存资源)
open_files_limit = 10240 #mysql允许打开最大文件数
back_log = 300 #操作系统在监听队列中所保持的连接数 thread_concurrency = 10 #应用程序给予线程系统一个提示在同一时间给予渴望被运行的线程的数量
#
# * Query Cache Configuration
#
sort_buffer_size = 16M #排序发生时每个线程分配
join_buffer_size = 16M #当全联合发生时,在每个线程中分配
query_cache_limit = 1M #只有小于此设定值的结果才会被缓冲
query_cache_size = 16M #查询缓冲常被用来缓冲 SELECT 的结果并且在下一次同样查询的时候不再执行直接返回结果
ft_min_word_len = 8 #被全文检索索引的最小的字长 #memlock #如果你的系统支持 memlock() 函数,你也许希望打开此选项用以让运行中的mysql在在内存高度紧张的时候,数据在内存中保持锁定并且防止可能被swapping out
#
# * Logging and Replication
#
# Both location gets rotated by the cronjob.
# Be aware that this log type is a performance killer.
# As of 5.1 you can enable the log at runtime!
#general_log_file = /var/log/mysql/mysql.log
#general_log = 1
#
# Error log - should be very few entries.
#
#log #打开全查询日志. 所有的由服务器接收到的查询 (甚至对于一个错误语法的查询) 用于调试环境
#log_warnings #将警告打印输出到错误log文件
log_error = /var/log/mysql/error.log
# Here you can see queries with especially long duration
log_slow_queries = /var/log/mysql/mysql-slow.log #开启慢日志
long_query_time = 2 #慢日志时间界限
log_long_format #在慢速日志中记录更多的信息
#log-queries-not-using-indexes
#
# The following can be used as easy to replay backup logs or for replication.
# note: if you are setting up a replication slave, see README.Debian about
# other settings you may need to change.
server-id = 1 #主从id
log_bin = /var/log/mysql/mysql-bin.log #开启二进制
expire_logs_days = 10
max_binlog_size = 100M
binlog_cache_size = 4M #在一个事务中binlog 为了记录sql状态所持有的cache大小
#binlog_do_db = include_database_name
#binlog_ignore_db = include_database_name
log_slave_updates #主从日志
#
# * InnoDB
#
# InnoDB is enabled by default with a 10MB datafile in /var/lib/mysql/.
# Read the manual for more InnoDB related options. There are many!
default_table_type = MYISAM #当创建新表时作为默认使用的表类型,
transaction_isolation = REPEATABLE-READ #设定默认的事务隔离级别.可用的级别如下: READ-UNCOMMITTED, READ-COMMITTED, REPEATABLE-READ, SERIALIZABLE
tmp_table_size = 128M #内部(内存中)临时表的最大大小 #
# * Security Features
#
# Read the manual, too, if you want chroot!
# chroot = /var/lib/mysql/
#
# For generating SSL certificates I recommend the OpenSSL GUI "tinyca".
#
# ssl-ca=/etc/mysql/cacert.pem
# ssl-cert=/etc/mysql/server-cert.pem
# ssl-key=/etc/mysql/server-key.pem # MyISAM 相关选项
#read_buffer_size = 8M #用来做MyISAM表全表扫描的缓冲大小
#read_rnd_buffer_size = 64M #当在排序之后,从一个已经排序好的序列中读取行时,行数据将从这个缓冲中读取来防止磁盘寻道
#bulk_insert_buffer_size = 256M #MyISAM 使用特殊的类似树的cache来使得突发插入
#myisam_sort_buffer_size = 256M #此缓冲当MySQL需要在 REPAIR, OPTIMIZE, ALTER 以及 LOAD DATA INFILE 到一个空表中引起重建索引时被分配.
#myisam_max_sort_file_size = 10G #MySQL重建索引时所允许的最大临时文件的大小 (当 REPAIR, ALTER TABLE 或者 LOAD DATA INFILE).
#myisam_max_extra_sort_file_size = 10G #如果被用来更快的索引创建索引所使用临时文件大于制定的值,那就使用键值缓冲方法.
#myisam_repair_threads = 1 #如果一个表拥有超过一个索引, MyISAM 可以通过并行排序使用超过一个线程去修复他们
#myisam_recover #自动检查和修复没有适当关闭的 MyISAM 表 #INNODB 相关选项
#skip-innodb #如果你的MySQL服务包含InnoDB支持但是并不打算使用的话,
#innodb_additional_mem_pool_size = 64M #附加的内存池被InnoDB用来保存 metadata 信息
#innodb_buffer_pool_size = 6G #InnoDB使用一个缓冲池来保存索引和原始数据, 不像 MyISAM
#innodb_data_file_path = ibdata1:10M:autoextend #InnoDB 将数据保存在一个或者多个数据文件中成为表空间
#innodb_data_home_dir = #设置此选项如果你希望InnoDB表空间文件被保存在其他分区
#innodb_file_io_threads = 4 #用来同步IO操作的IO线程的数量.
#innodb_force_recovery=1 #如果你发现InnoDB表空间损坏, 设置此值为一个非零值可能帮助你导出你的表
#innodb_thread_concurrency = 16 #在InnoDb核心内的允许线程数量
#innodb_flush_log_at_trx_commit = 2 #如果设置为1 ,InnoDB会在每次提交后刷新(fsync)事务日志到磁盘上 如果是游戏服务器,建议此值设置为2;如果是对数据安全要求极高的应用,建议设置为1
#innodb_fast_shutdown #加速InnoDB的关闭. 这会阻止InnoDB在关闭时做全清除以及插入缓冲合并.
#innodb_log_buffer_size = 16M #用来缓冲日志数据的缓冲区的大小.
#innodb_log_file_size = 512M #在日志组中每个日志文件的大小.
#innodb_log_files_in_group = 3 #在日志组中的文件总数.
#innodb_log_group_home_dir #InnoDB的日志文件所在位置. 默认是MySQL的datadir
#innodb_max_dirty_pages_pct = 90 #在InnoDB缓冲池中最大允许的脏页面的比例.
#innodb_flush_method=O_DSYNC #InnoDB用来刷新日志的方法 表空间总是使用双重写入刷新方法 # 默认值是 “fdatasync”, 另一个是 “O_DSYNC”
#innodb_lock_wait_timeout = 120 #在被回滚前,一个InnoDB的事务应该等待一个锁被批准多久
[mysqldump]
quick
quote-names
max_allowed_packet = 16M ## 服务所能处理的请求包的最大大小以及服务所能处理的最大的请求大小(当与大的BLOB字段一起工作时相当必要) #safe-updates #仅仅允许使用键值的 UPDATEs 和 DELETEs
[mysql]
#no-auto-rehash # faster start of mysql but no tab completition [isamchk]
key_buffer = 16M
sort_buffer_size = 2048M
read_buffer = 32M
write_buffer = 32M
#
# * IMPORTANT: Additional settings that can override those from this file!
# The files must end with '.cnf', otherwise they'll be ignored.
#
[myisamchk]
key_buffer = 2048M
sort_buffer_size = 2048M
read_buffer = 32M
write_buffer = 32M [mysqlhotcopy]
interactive-timeout !includedir /etc/mysql/conf.d/

转载-企业环境下MySQL5.5调优的更多相关文章

  1. Perf -- Linux下的系统性能调优工具,第 1 部分 应用程序调优的使用和示例 Tracepoint 是散落在内核源代码中的一些 hook,一旦使能,它们便可以在特定的代码被运行到时被触发,这一特性可以被各种 trace/debug 工具所使用。Perf 就是该特性的用户之一。

    Perf -- Linux下的系统性能调优工具,第 1 部分 应用程序调优的使用和示例 https://www.ibm.com/developerworks/cn/linux/l-cn-perf1/i ...

  2. Perf Event :Linux下的系统性能调优工具

    Perf Event :Linux下的系统性能调优工具 2011-05-27 10:35 刘 明 IBMDW 字号:T | T Perf Event 是一款随 Linux 内核代码一同发布和维护的性能 ...

  3. Asp.net平台下网站性能调优的实战方案(转)

    转载地址:http://www.cnblogs.com/chenkai/archive/2009/11/07/1597795.html 前言 最近帮朋友运营的平台进行了性能调优,效果还不错,所以写出来 ...

  4. [网站性能2]Asp.net平台下网站性能调优的实战方案

    文章来源:http://www.cnblogs.com/dingjie08/archive/2009/11/10/1599929.html 前言    最近帮朋友运营的平台进行了性能调优,效果还不错, ...

  5. Perf -- Linux下的系统性能调优工具,第 1 部分【转】

    转自:https://www.ibm.com/developerworks/cn/linux/l-cn-perf1/ Perf 简介 Perf 是用来进行软件性能分析的工具. 通过它,应用程序可以利用 ...

  6. Perf -- Linux下的系统性能调优工具,第 1 部分

    Perf 简介 Perf 是用来进行软件性能分析的工具. 通过它,应用程序可以利用 PMU,tracepoint 和内核中的特殊计数器来进行性能统计.它不但可以分析指定应用程序的性能问题 (per t ...

  7. Perf -- Linux下的系统性能调优工具,第 2 部分 特殊用法以及内核调优示例

    https://www.ibm.com/developerworks/cn/linux/l-cn-perf2/ 本文内容简介 之前介绍了 perf 最常见的一些用法,关注于 Linux 系统上应用程序 ...

  8. 转载-windows下MySql5.6.17没有setup.exe时的安装方法

    转载出处为:http://blog.csdn.net/zgrjkflmkyc/article/details/25321537 (最终,我也没有安装下述的方法安装成功,虽然有服务,但是服务启动不正常, ...

  9. (转)linux下jvm 参数调优

    1.基本概念. JAVA_MEM_OPTS=" -server -Xmx2g -Xms2g -Xmn512m -XX:PermSize=128m -Xss256k -XX:+DisableE ...

随机推荐

  1. 【LeetCode算法-38】Count and Say

    LeetCode第38题 The count-and-say sequence is the sequence of integers with the first five terms as fol ...

  2. iOS开发应该知道的7个编程概念

    对流行工具(如Xcode)和编程概念(如视图控制器)的高级讨论,这些对iOS开发本身很有用. 1. Xcode Xcode是iOS应用开发社区所见过的最通用的IDE.由于集成开发环境来自Apple,它 ...

  3. [LeetCode] 342. Power of Four 4的次方数

    Given an integer (signed 32 bits), write a function to check whether it is a power of 4. Example:Giv ...

  4. 在ensp中RSTP基础设置

    为什么我们要有rstp? rstp就是stp的加强版 实验模拟内容 搭建拓扑 相关参数(实验的时候看看自己的mac地址可能与我的并不同) 我们开始配置RSTP基本功能,由于交换机默认开启MSTP,所有 ...

  5. 【转帖】处理器史话 | 这张漫画告诉你,为什么双核CPU能打败四核CPU?

    处理器史话 | 这张漫画告诉你,为什么双核CPU能打败四核CPU? https://www.eefocus.com/mcu-dsp/371324 2016-10-28 10:28 作者:付丽华预计 9 ...

  6. CRT远程连接centos7,连接超时

    CRT远程连接centos7,连接超时 问题原因: 宿主机(win10)和虚拟机(centos7)不在同一个网段 在宿主机无法ping通虚拟机, 首先在cmd窗口ipconfig查看一下vmnet的i ...

  7. c++模板使用及常见问题

    一.为什么使用模板?? 使用模板的目的是为了避免重复声明和定义一系列基本功能相同的函数或者类,其区别因传入参数的不同而产生不同类型的数据,其基本工作过程都是一致的! 二.调用模板函数产生不明确问题 ( ...

  8. Python-15-面向对象

    一.什么是面向对象 面向过程:根据业务逻辑从上到下写垒代码 函数式:将某功能代码封装到函数中,日后便无需重复编写,仅调用函数即可 面向对象:对函数进行分类和封装,让开发“更快更好更强...” 优点:解 ...

  9. springboot 配置elasticsearch Java High Rest Client

    前提声明 在新版本的spring boot中逐渐放弃了对Spring Data Elasticsearch的支持,所以不推荐使用,使用ES官方推出的Java High Rest Client. 引入依 ...

  10. 【scratch3.0教程】1.2 下载安装scratch

    第2课  下载安装Scratch 1 . 什么是Scratch?                                Scratch将程序语言设计成一块块积木,你只要用拖拉的方式,将程序积木 ...