CPU 升级成本更高,但是如果已经成为瓶颈了,可能还是需要升级的 。
内存内存表示 MySQL 服务器中的内存总量 。可以调整内存缓存(下面细说),以提高性能 。但是如果没有足够的内存,或者现有内存没有经过优化,那就不要乱来
与其他资源一样,如果服务器不断耗尽内存,可以通过添加内存升级 。如果内存不足,服务器将缓存数据存储到硬盘上,降低性能 。
网络监控网络流量,确保基础架构没问题 。
网络过载可能导致延迟,数据包丢失甚至服务中断 。
确保有足够的网络带宽来容纳正常水平的数据库流量 。
2.使用 InnoDB 而不是 MyisamMyisam 是 MySQL 5.1 及之前的版本使用的存储引擎,不支持事务以及行级锁,而且一个毫无疑问的缺陷是崩溃后无法安全恢复,效率也较低 。InnoDB 是 MySQL 5.5 版本以后的默认存储引擎,InnoDB 是为 Mysql 处理巨大数据量时的最大性能设计 。它的 CPU 效率可能是任何其它基于磁盘的关系数据库引擎所不能匹敌的 。在数据量大的网站或是应用中 Innodb 是倍受青睐的 。
InnoDB 使用聚集索引并将数据保留在页面中,这些页面存储在连续的物理块中 。如果一个页面的值太大,InnoDB会将其移动到另一个位置,然后索引该值 。此功能有助于将相关数据保存在存储设备上的同一位置,这意味着物理硬盘驱动器需要较少的时间来访问数据 。
3. 使用最新版本的 MySQL如果由于历史遗留问题,只能用旧版本的 MySQL,那没办法 。但是只要有可能,都用最新版的 MySQL,因为新版性能更好,高级特效更多 。
软件性能调整这些方法涉及调整 MySQL 配置文件,编写更高效的 SQL 语句以及创建索引等等
注意:调整时,一次只进行一个更改,进行测试,然后进行下一个 。如果一次调整很多,出现性能下降或故障,排查问题不好下手 。
4. 使用自动性能改进工具和大多数工具一样,不一定适用所有的 MySQL 版本 。下面提供几个工具来评估 MySQL 数据库及提供更改建议 。
MySQL Tuning Primer 这个工具使用于 MySQL >= 5.5 <= 5.7,它可以分析数据库并建议设置以提高性能 。例如,如果感觉系统处理查询较慢,则建议提高 query_cache_size 参数 。
MySQLTuner-perl 使用 Perl 编写的脚本,可快速查看 MySQL 安装并进行调整以提高性能和稳定性 。检索当前配置变量和状态数据,并以简短的格式显示一些基本的性能建议 。
文章插图
该脚本适用于 MySQL 多个版本 。
文章插图
日志文件建议是列表中的第一条建议,在底部,则可以看到有关提高MySQL性能的一般建议 。
5. 优化查询查询是用于搜索数据库中与特定值匹配的数据的编码请求 。有些查询需要很长时间才能返回结果 。如果您的环境依赖于自动查询,它们可能会影响性能,检查并及时终止堆积的 MySQL 进程 。
6. 适当的时候使用索引查询经常使用类似于以下的结构:
SELECT … WHERE
这些查询涉及评估,过滤和检索结果 。可以通过为相关表添加索引,加快查询速度 。
7. 谓词中的函数避免在谓词查询中使用函数,如:
SELECT * FROM MYTABLE WHERE UPPER(COL1)='123'
UPPER 创建一个函数,这个函数必须在 SELECT 运行期间进行操作,这会使查询正在做的工作加倍,尽量避免 。8. 避免在谓词中使用%通配符通配符%表示零个或多个字符 。如果查询如下所示:
SELECT * FROM MYTABLE WHERE COL1 LIKE '%123'
表达式 "%123" 包含所有以 123 结尾的值 。% 符号代表任何类型或数量的前面字符,包括任何字符 。这样必须执行全表扫描,尽量避免9.在 SELECT 函数中指定列一种常见的表达方式是使用 SELECT *扫描所有数据库列 。如果指定所需的列,则查询将不需要扫描不相关的列 。
10.适当使用 ORDER BY ORDER BY 表达式按指定的列对结果进行排序 。可用于一次按两列排序 。这些应该以相同的顺序(升序或降序)进行排序 。如果尝试按不同顺序对不同的列进行排序,则会降低性能 。可以将其与索引结合使用以加快排序速度 。
11. JOIN, UNION, DISTINCT尽可能尝试使用内部联接 。外部联接将查看指定列之外的其他数据 。如果您需要这些数据,那很好,但是包含不必要的数据会浪费性能 。查询有时包含UNION和DISTINCT命令 。就像外部联接一样,可以在必要时使用这些表达式 。但是,它们增加了数据库的其他排序和读取 。如果您不需要它们,最好找到一个更有效的表达方式 。
推荐阅读
- mysql误删数据恢复
- 这些女人私处对男人有致命诱惑
- 生产环境下shell脚本:Mysql数据库备份和Mysql主从同步监控
- Mysql数据库实现主从同步,看这一篇就够了
- 使用mysqld_exporter监控MySQL并展示数据
- hr|大企业HR坦言:这些大学生简历都不用细看,基本就能直接淘汰
- 翡翠|这些不为人知的翡翠知识,一定要了解,否则会对自身有影响
- Mysql:下载、安装、部署、修改密码步骤
- 搞定MySQL安装难安装贵问题
- .NET已经步入5.0时代,这些代码保护软件需要知道