生产中my.cnf配置示例

生产环境 my.cnf 配置示例

1.硬件:内存32G

2.my.cnf

  • innodb_file_per_table = 1

    • 打开独立表空间
  • max_connections = 8000

    • #MySQL 服务所允许的同时会话数的上限,经常出现Too Many Connections的错误提示,则需要增大此值
  • open_files_limit = 10240

    • #所有线程所打开表的数量
  • back_log = 300

    • #back_log 是操作系统在监听队列中所能保持的连接数
  • max_connect_errors = 1000

    • #每个客户端连接最大的错误允许数量,当超过该次数,MYSQL服务器将禁止此主机的连接请求,直到MYSQL服务器重启或通过flush hosts命令清空此主机的相关信息
  • max_allowed_packet = 32M

    • #每个连接传输数据大小.最大1G,须是1024的倍数,一般设为最大的BLOB的值
  • wait_timeout = 10

    • #指定一个请求的最大连接时间
  • sort_buffer_size = 16M

    • #排序缓冲被用来处理类似ORDER BY以及GROUP BY队列所引起的排序
  • join_buffer_size = 16M

    • #不带索引的全表扫描.使用的buffer的最小值
  • query_cache_size = 128M

    • #查询缓冲大小
  • query_cache_limit = 4M

    • #指定单个查询能够使用的缓冲区大小,缺省为1M
  • transaction_isolation = REPEATABLE-READ

    • #设定默认的事务隔离级别
  • thread_stack = 512K

    • #线程使用的堆大小. 此值限制内存中能处理的存储过程的递归深度和SQL语句复杂性,此容量的内存在每次连接时被预留.
  • log-bin

    • #二进制日志功能
  • binlog_format=row

    • #二进制日志格式
  • innodb_buffer_pool_size = 24G

    • #InnoDB使用一个缓冲池来保存索引和原始数据, 可设置这个变量到物理内存大小的80%
  • innodb_file_io_threads = 4

    • #用来同步IO操作的IO线程的数量
  • innodb_thread_concurrency = 16

    • #在InnoDb核心内的允许线程数量,建议的设置是CPU数量加上磁盘数量的两倍
  • innodb_log_buffer_size = 16M

    • #用来缓冲日志数据的缓冲区的大小
  • innodb_log_file_size = 512M

    • 在日志组中每个日志文件的大小
  • innodb_log_files_in_group = 3

    • #在日志组中的文件总数
  • innodb_lock_wait_timeout = 120

    • #SQL语句在被回滚前,InnoDB事务等待InnoDB行锁的时间
  • long_query_time = 2

    • #慢查询时长
  • log-queries-not-using-indexes

    • #将没有使用索引的查询也记录下来

MYSQL配置最佳实践

  • 高并发大数据的互联网业务,架构设计思路是解放数据库CPU,将计算转移到服务层,并发量大的情况下,这些功能很可能将数据库拖死,业务逻辑放到服务层具备更好的扩展性,能够轻易实现增机器就加性能
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值