美文网首页
MySQL基础理论~参数优化

MySQL基础理论~参数优化

作者: 开心的蛋黄派 | 来源:发表于2024-07-20 09:53 被阅读0次

系统参数优化建议

  1. vm.swappiness=0
    • 将内核使用交换空间的倾向降至最低,以提升性能。
  2. I/O Scheduler 设置为 noop
    • 对于低延迟存储设备(如SSD),使用noop I/O调度器以减少开销。
  3. TCP 参数调整
    • tcp_tw_reuse=1
      • 启用后,允许快速将TIME-WAIT状态的sockets重新用于新的TCP连接。
    • tcp_fin_timeout=15
      • 修改处于FIN-WAIT-2状态的socket保持时间,以防止DOS攻击。
    • tcp_keepalive_time=300
      • 设置keepalive消息发送的频率,用于检测TCP连接的另一端是否仍然响应。
    • tcp_max_syn_backlog=26144
      • 增加SYN队列长度,以处理更多的并发SYN请求。
  4. 文件句柄限制
    • 根据应用程序需求,适当增加文件句柄的限制,以避免达到限制而导致的问题。
  5. 关闭 NUMA
    • 关闭NUMA(Non-Uniform Memory Access)以提高在某些系统上的内存访问性能。
  6. 使用 XFS 文件系统
    • XFS是一个高性能的文件系统,适合用于需要高吞吐量的场景。

MySQL参数优化建议

  • innodb_buffer_pool_size: 设置为总内存的60%。
  • sync_binlog=1: 确保每次事务提交时都同步binlog到磁盘,增加数据安全性,但可能会略微影响性能。
  • flush-log-at-trx-commit=1: 确保每次事务提交时都刷新日志到硬盘,与sync_binlog配合使用,可以进一步增强数据安全性。
  • max_connections: 根据系统资源(如CPU、内存)和预期并发访问量来决定最大连接数。需要确保系统有足够资源来处理这些连接。
  • max_user_connections: 限制每个用户的最大并发连接数,以防止单个用户占用过多资源。
  • character_set_server: 设置为utf8mb4以支持更多的字符集,特别是表情符号和特殊字符。
  • innodb_temp_data_file_path: 设置InnoDB临时文件的路径和大小上限,以防止写满磁盘空间。建议配置为足够大的大小,并根据需要调整。
  • max_allowed_packet=64M: 设置网络传输中数据包的最大大小为64MB,以防止因参数太小而导致大数据量传输失败。根据实际应用需求,可以适当调整此值。
  • innodb_io_capacity: 提高InnoDB每秒刷脏页和插入缓冲的I/O次数,以优化性能。具体数值需根据磁盘I/O性能来调整。
  • innodb_io_capacity_max: 在高I/O负载下,此参数可以限制I/O操作的速率,以防止系统过载。建议设置为innodb_io_capacity的1.5-2倍。

双1参数

  1. flush-log-at-trx-commit 参数: memory->os_buffer->disk
    • 设置为 0
      • MySQL 每秒将事务日志写入文件系统缓存,并触发操作系统进行硬盘刷新(fsync())。
      • 如果 mysqld 进程或 Linux 系统崩溃,可能会导致上一秒钟内所有事务数据的丢失。
    • 设置为 1
      • 每个事务提交时都会将日志写入文件系统缓存并立即刷新到硬盘。
      • 当 MySQL 或 Linux 出现故障时,不会丢失数据,提供了最高的数据安全性。
    • 设置为 2
      • 每个事务提交时都会将日志写入文件系统缓存,操作系统会每秒刷新缓存到硬盘。
      • 在 Linux 系统崩溃时,可能会损失最后一秒钟内的事务数据。
  2. sync-binlog 参数:-> os_buffer->disk(主要看文件系统缓存到磁盘的刷新)
    • 设置为 0
      • MySQL 不会主动刷新二进制日志到磁盘,而是依赖于操作系统的刷新策略。
    • 设置为 1
      • 每次事务提交时,MySQL 都会将文件系统缓存binlog刷新到磁盘。
      • 优化建议:在数据安全性要求极高的场景下使用,但需注意可能对性能造成一定影响。
    • 设置为 N(N > 1):
      • 每进行 N 次事务提交后,MySQL 才会将文件系统缓存的binlog刷新到磁盘。

相关文章

  • MySQL核心参数优化

    MySQL核心参数优化

  • MYSQL优化相关

    mysql优化3大方向: 优化mysql所在服务器内核(运维完成)对mysql配置参数进行优化(my.cnf),此...

  • 后端开发需要了解的mysql优化方向

    优化思维导图 参数优化注意事项 参数优化分为 动态参数配置 和 配置文件的配置,建议在启动mysql之前配置好优化...

  • Linux中MySQL配置文件my.cnf参数说明

    MySQL参数优化这东西不好好研究还是比较难懂的,其实不光是MySQL,大部分程序的参数优化,是很复杂的。MySQ...

  • MySQL参数优化

    MySQL参数优化 1:MySQL 默认的最大连接数为 100,可以在 mysql 客户端使用以下命令查看 mys...

  • 常见MYSQL调优策略

    调优层次:硬件层、磁盘IO、文件系统层、 硬件层 磁盘IO 文件系统层 内核参数优化 MYSQL参数优化建议

  • Mysql的优化2018-05-24

    mysql优化的三个方向 1.linux内核的优化,一般交给运维做 2.改mysql的配置文件,配置参数优化,此优...

  • MySQL服务器参数配置

    MySQL运行时的性能与配置参数有着密切的联系,为了保证我们的MySQL服务高效,就必须对各项参数进行优化。 Ma...

  • Mysql数据库优化笔记

    mysql所在的宿主机优化 第一优化参数是内核io的调度算法,把cfq改为deadline。 第二优化打开文件句柄...

  • mysql配置参数优化

    #最大连接数 优化:http://database.51cto.com/art/201010/229936.ht...

网友评论

      本文标题:MySQL基础理论~参数优化

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