美文网首页
MySQL之:生产环境 my.cnf 配置示例

MySQL之:生产环境 my.cnf 配置示例

作者: Simon_Ye | 来源:发表于2020-04-05 21:29 被阅读0次

    硬件:内存32G

    character_set_server = utf8:设置字符集为utf8
    innodb_file_per_table = 1:打开独立表空间
    max_connections = 8000:(并发连接)MySQL 服务所允许的同时会话数的上限,经常出现 Too Many Connections 的错误提示,则需要增大此值
    back_log = 300:back_log 是操作系统在监听队列中所能保持的连接数
    max_connect_errors = 1000:每个客户端连接最大的错误允许数量,当超过该次数,MySQL 服务器将禁止此主机的连接请求,直到 MySQL 服务器重启或通过 flush hosts 命令清空此主机的相关信息
    open_files_limit = 10240:所有线程所打开表的数量
    max_allowed_packet = 32M:每个连接传输数据大小,最大1G,须是1024的倍数,一般设为最大的 BLOG 的值
    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:二进制日志功能
    log_long_format=row:二进制日志格式
    innodb_buffer_pool_size = 6G: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,将计算转移到服务层”,并发量大的情况下,这些功能很可能将数据库拖死,业务逻辑放到服务层具备更好的扩展性,能够轻易实现“增机器就加性能”
    参考:

    阿里巴巴 jave 开发手册
    58到家数据库30条军规解读
    https://zhuanlan.51cto.com/art/201702/531364.htm

    相关文章

      网友评论

          本文标题:MySQL之:生产环境 my.cnf 配置示例

          本文链接:https://www.haomeiwen.com/subject/jbmpphtx.html