
文章插图
这个参数决定了 Linux 是倾向于使用 swap,还是倾向于释放文件系统 cache 。在内存紧张的情况下,数值越低越倾向于释放文件系统 cache 。当然,这个参数只能减少使用 swap 的概率,并不能避免 Linux 使用 swap 。
修改 MySQL 的配置参数 innodb_flush_method,开启 O_DIRECT 模式 。这种情况下,InnoDB 的 buffer pool 会直接绕过文件系统 cache 来访问磁盘,但是redo log 依旧会使用文件系统 cache 。值得注意的是,Redo log 是覆写模式的,即使使用了文件系统的 cache,也不会占用太多 。
IO 调度策略:

文章插图
5. 系统参数调整
Linux 系统内核参数优化:

文章插图
用户限制参数(MySQL 可以不设置以下配置):

文章插图
6. 应用优化
业务应用和数据库应用独立,防火墙:iptables、selinux 等其他无用服务(关闭):

文章插图
安装图形界面的服务器不要启动图形界面 runlevel 3,另外,思考将来我们的业务是否真的需要MySQL,还是使用其他种类的数据库 。用数据库的最高境界就是不用数据库 。《
六、数据库优化
SQL 优化方向:
执行计划、索引、SQL 改写
架构优化方向:
高可用架构、高性能架构、分库分表
1. 数据库参数优化
调整:
实例整体(高级优化,扩展)

文章插图
连接层(基础优化)
设置合理的连接客户和连接方式

文章插图
SQL 层(基础优化)
- query_cache_size: 查询缓存
- OLAP 类型数据库,需要重点加大此内存缓存
- 但是一般不会超过 GB
- 对于经常被修改的数据,缓存会立马失效
- 我们可以实用内存数据库(redis、memecache),替代他的功能

文章插图
随着系统用户量的不断增加,MySQL 索引的重要性不言而喻,对于后端工程师,只有在了解索引及其优化的规则,并应用于实际工作中后,才能不断的提升系统性能,开发出高性能、高并发和高可用的系统 。
推荐阅读
- HBase 有哪些优化点?
- MySQL 运维常用脚本
- MySQL 进行 Docker 容器化之体验与感悟
- MySQL-查询聚合函数
- mysql命令行脚本
- MySql基础架构以及SQL语句执行流程
- mysql把查询的结果保存到表
- MySQL命令,一篇文章替你全部搞定
- SEO优化内链外链Nofollow工具
- 网站优化中关键词密度的重要性
