MySQL数据库配置优化的方案

作者:liuyunshengsir 时间:2024-01-14 00:41:52 

数据库的操作越来越成为整个应用的性能瓶颈,这对于Web应用尤其明显。关于数据库的性能,这并不只是DBA需要关心的,而更是后端开发需要去关注的事情。

所以本文讲解MySQL在各个方面的优化方向,方便后端开发人员在调优和问题排查过程中找到切入点。

1.服务器硬件的优化

提升硬件设备,例如选择尽量高频率的内存(频率不能高于主板的支持)、提升网络带宽、使用SSD高速磁盘、提升CPU性能等。

CPU的选择:

对于数据库并发比较高的场景,CPU的数量比频率重要。
对于CPU密集型场景和频繁执行复杂SQL的场景,CPU的频率越高越好。

2.MySQL数据库配置优化

表示缓冲池字节大小。
推荐值为物理内存的50%~80%。
innodb_buffer_pool_size

用来控制redo log刷新到磁盘的策略。
innodb_flush_log_at_trx_commit=1

每提交1次事务同步写到磁盘中,可以设置为n。
sync_binlog=1

脏页占innodb_buffer_pool_size的比例时,触发刷脏页到磁盘。 推荐值为25%~50%。
innodb_max_dirty_pages_pct=30

后台进程最大IO性能指标。
默认200,如果SSD,调整为5000~20000
innodb_io_capacity=200

指定innodb共享表空间文件的大小。
innodb_data_file_path

慢查询日志的阈值设置,单位秒。
long_qurey_time=0.3

mysql复制的形式,row为MySQL8.0的默认形式。
binlog_format=row

调高该参数则应降低interactive_timeout、wait_timeout的值。
max_connections=200

过大,实例恢复时间长;过小,造成日志切换频繁。
innodb_log_file_size

全量日志建议关闭。
默认关闭。
general_log=0

来源:https://blog.51cto.com/liuyunshengsir/6061959

标签:MySQL优化
0
投稿

猜你喜欢

  • discuz 跨域整合的记录文件

    2023-07-23 14:17:27
  • 详解python的变量

    2021-01-26 20:44:20
  • javascript下function声明一些小结

    2024-04-29 13:42:52
  • 利用Python实现自动化监控文件夹完成服务部署

    2023-03-15 00:02:04
  • Git里多种撤销操作的最佳方法

    2023-10-30 00:51:17
  • python学习之可迭代对象、迭代器、生成器

    2023-08-22 03:21:46
  • python 多维切片之冒号和三个点的用法介绍

    2023-05-05 11:57:23
  • sqlserver 触发器学习(实现自动编号)

    2024-01-24 23:03:33
  • 仅用50行Python代码实现一个简单的代理服务器

    2022-11-26 14:44:57
  • Python编程中字符串和列表的基本知识讲解

    2022-02-19 16:39:25
  • python实现接口并发测试脚本

    2023-04-20 05:06:15
  • 使用有趣的自定义标记来布局页面

    2013-11-10 19:07:48
  • 详解numpy.ndarray.reshape()函数的参数问题

    2022-02-06 20:22:57
  • JsonServer安装及启动过程图解

    2023-08-12 20:06:02
  • PyTorch零基础入门之逻辑斯蒂回归

    2022-09-09 03:44:25
  • 在PHP中使用redis

    2024-05-13 09:22:41
  • Python函数装饰器的使用教程

    2022-10-26 03:01:06
  • vue 引用自定义ttf、otf、在线字体的方法

    2024-04-30 10:18:47
  • Python新手如何进行闭包时绑定变量操作

    2021-05-01 15:23:55
  • SQL使用ROW_NUMBER() OVER函数生成序列号

    2024-01-18 18:14:35
  • asp之家 网络编程 m.aspxhome.com