我是靠谱客的博主 温暖康乃馨,最近开发中收集的这篇文章主要介绍解决MYSQL负载过高问题,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

出自:http://www.linuxdiyf.com/viewarticle.php?id=102184

公司网站刚改完版,优化了数据库结构,使用的memcache分布式缓存加mysql,刚开始几天还好,数据库服务几天没down过了.但这几天频繁down机.是个大问题,需要解决.

数据库服务器硬件配置为4颗双核CPU,8G内存.

查看服务器负载(top命令),见mysql竟然经常百分之九十几的cpu,恐怖.早之前就知道,数据表有些字段没有做索引的,引起MYSQL负载这么高的原因主要应该是索引问题和某些变态SQL语句.

如何知道是MYSQL哪些索引和SQL引起的问题呢?老大教有绝招

编辑MYSQL配置文件my.cnf,加上以下几行:
log_slow_queries=/usr/local/mysql/data/log_slow_queries.log //慢语句日志保存目录
long_query_time=10 //记录SQL查询超过10S的语句
log-queries-not-using-indexes=1 //记录没有使用索引的sql

这样,慢语句就被记录在日志文件中了.
tail -f /usr/local/mysql/data/log_slow_queries.log 查看日志.
四个参数
Query_time: 0 Lock_time: 0 Rows_sent: 1 Rows_examined: 54
分别意思为:查询时间 锁定时间 查询结果行数 扫描行数
主要看那些扫描行数超多的语句.然后去数据库加上对应的索引
再优化下变态的sql
完成后mysql负载降到了二十几.还行.应该不会down机了.

转载于:https://blog.51cto.com/holy2010/639596

最后

以上就是温暖康乃馨为你收集整理的解决MYSQL负载过高问题的全部内容,希望文章能够帮你解决解决MYSQL负载过高问题所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(68)

评论列表共有 0 条评论

立即
投稿
返回
顶部