• mysql8配置优化


    max_connections

    最大连接数
    服务器的并发连接请求量比较大,建议调高此值,相应的占用内存越大

    max_connections = 768
    
    • 1

    查看当前配置

    show variables like 'max_connections';
    
    • 1

    max_user_connections

    每个用户的最大连接数
    默认值 0
    0表示,不受限制

    max_user_connections = 600
    
    • 1

    查看当前配置

    show variables like 'max_user_connections';
    
    • 1

    wait_timeout

    MySQL客户端的数据库连接闲置最大时间值

    默认是 8小时

    #单位为秒,3600 表示1小时
    wait_timeout=3600
    
    • 1
    • 2

    sort_buffer_size

    sort_buffer_size是一个connection级参数,在每个connection第一次需要使用这个buffer的时候,一次性分配设置的内存。并不是越大越好,由于是connection级的参数,过大的设置+高并发可能会耗尽系统内存资源。官方文档推荐范围为256KB~2MB

    sort_buffer_size = 2M
    
    • 1

    查看当前配置

    show variables like '%sort_buffer_size%';
    
    • 1

    back_log

    #默认的50,每个连接256kb,占用:125M

    back_log = 500
    
    • 1

    back_log值不能超过TCP/IP连接的侦听队列的大小
    查看 tcp/ip 连接数 cat /proc/sys/net/ipv4/tcp_max_syn_backlog

    查看当前配置

    show variables like 'back_log'
    
    • 1

    thread_concurrency

    多核心优化,应是 核心的2倍
    假设 4个cpu,每个cpu 2核,那么 最后应该是 16

    查看当前配置

    show variables like 'thread_concurrency'
    
    • 1

    修改mysql binlog

    查看日志

    mysql> show binary logs;
    
    • 1

    输出

    +---------------+------------+-----------+
    | Log_name      | File_size  | Encrypted |
    +---------------+------------+-----------+
    | binlog.000017 |  616891021 | No        |
    | binlog.000018 | 1073751165 | No        |
    | binlog.000019 | 1073742021 | No        |
    | binlog.000020 | 1283903951 | No        |
    | binlog.000021 |  589666324 | No        |
    +---------------+------------+-----------+
    5 rows in set (0.14 sec)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    全部删除日志

    mysql> reset master;
    
    • 1

    结果
    输出

    mysql> show binary logs;
    +---------------+-----------+-----------+
    | Log_name      | File_size | Encrypted |
    +---------------+-----------+-----------+
    | binlog.000001 |       156 | No        |
    +---------------+-----------+-----------+
    1 row in set (0.00 sec)
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    如果想单独删除某一个之前的日志

    删除 binlog.000020 之前的,但不包括 binlog.000020

    mysql> purge master logs to 'binlog.000020';
    
    • 1

    结果
    输出

    mysql> show binary logs;
    +---------------+------------+-----------+
    | Log_name      | File_size  | Encrypted |
    +---------------+------------+-----------+
    | binlog.000020 | 1283903951 | No        |
    | binlog.000021 |  589666324 | No        |
    +---------------+------------+-----------+
    2 row in set (0.00 sec)
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    设置自动删除

    修改mysql 配置文件
    /etc/mysql/mysql.conf.d/mysqld.cnf

    [mysqld]
    ......
    # 在 [mysqld] 下增加如下,表示  5 天前日志都会删除
    --expire_logs_days=5
    
    • 1
    • 2
    • 3
    • 4
  • 相关阅读:
    C++-JSON
    游戏数据分析工具该怎样选择?有哪些选择标准?
    facebook分享-错误记录
    OpenMV输出PWM,实现对舵机控制
    基于滤波反投影的图像重建算法matlab仿真,R-L滤波和S-L滤波
    Hive恢复误删数据表
    如何让你的程序支持lua脚本
    AI能给百融云带来什么?
    docker常用命令与jenkins安装
    基于SpringBoot+Vue企业会议室预定管理系统设计和实现
  • 原文地址:https://blog.csdn.net/wljk506/article/details/127846406