共计 1634 个字符,预计需要花费 5 分钟才能阅读完成。
本篇内容介绍了“MySQL server 安装前后需要做哪些优化”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让丸趣 TV 小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
一、硬件部分
1、建议单独跑 MySQL server 的服务器 使用 ssd 磁盘,提高磁盘的 io
2、建议选择使用 RAID 10 而非 RAID 5 RAID 10 虽然浪费了一部分磁盘空间,但是比 RAID5 的 IO 能力提高不少
二、OS 部分
1、建议使用 deadline/noop 这两种 I / O 调度器,系统默认的为 cfq
2、建议使用 xfs 文件系统、高并发情况下凸显出其性能优势
三、系统内核优化
1、将 net.ipv4.tcp_tw_recycle 设置为 1
2、将 net.ipv4.tcp_tw_reuse 设置为 1
3、将以上两个参数开启,可快速减少在 TIME-WAIT 状态 TCP 连接数,提高 TCP 效率
4、将 vm.dirty_background_ratio 设置为 5
5、将 vm.dirty_ratio 设置为 10
vm.dirty_background_ratio: 这个参数指定了当文件系统缓存脏页数量达到系统内存百分之多少时(如 5%)就会触发 pdflush/flush/kdmflush 等后台回写进程运行,将一定缓存的脏页异步地刷入外存
vm.dirty_ratio 而这个参数则指定了当文件系统缓存脏页数量达到系统内存百分之多少时(如 10%),系统不得不开始处理缓存脏页(因为此时脏页数量已经比较多,为了避免数据丢失需要将一定脏页刷入外存);在此过程中很多应用进程可能会因为系统转而处理文件 IO 而阻塞。
6、将 vm.swappiness 设置为 0 可以降低 swapping 的延迟(前提是确保机器不会出现内存不足的情况,若出现可能会被 oom 掉)
四、MySQL server 参数优化
1、建议使用 innodb 存储引擎、MySQL5.5 之后的默认存储引擎是 innodb 引擎,可满足 95% 以上用户需求
2、建议调整 innodb_buffer_pool_size 的大小,主要作用是缓存 innodb 表的索引,数据,插入数据时的缓冲默认为 128M,如果是单独 MySQL 服务器,建议设置为物理内存的 70%–80% 左右。
并不是设置的越大越好。设置的过大,会导致 system 的 swap 空间被占用,导致操作系统变慢,从而减低 sql 查询的效率。
innodb 的 logfile 就是事务日志,用来在 mysqlcrash 后的恢复. 所以设置合理的大小对于 mysql 的性能非常重要
3、建议设置 innodb_log_files_in_group = 2
4、建议设置 innodb_file_per_table = 1 使用单独表空间易维护
1. 如果使用软链接将大表分配到不同的分区上,易于管理数据文件
3. 易于修复和恢复损坏的数据
3.2 导出导入只针对单个表,而不是整个共享表空间
5. 对于大量的 delete 操作,更易于回收磁盘空间
7. 易于安全审计
有三个值:fdatasync(默认),O_DSYNC,O_DIRECT
为 O_DSYNC 时,innodb 会使用 O_SYNC 方式打开和刷写 redo log, 使用 fsync() 刷写数据文件
在类 unix 操作系统中,文件的打开方式为 O_DIRECT 会最小化缓冲对 io 的影响,该文件的 io 是直接在用户空间的 buffer 上操作的,
并且 io 操作是同步的,因此不管是 read()系统调用还是 write()系统调用,数据都保证是从磁盘上读取的
5、建议设置 binlog_format=row 默认为 statement,强烈建议设置为 row 模式 记录每一条记录的修改,有利于主从同步
“MySQL server 安装前后需要做哪些优化”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注丸趣 TV 网站,丸趣 TV 小编将为大家输出更多高质量的实用文章!