MySQL数据库负载过高

1首先进入数据库中 show full processlist; 连续多执行几次 找出慢的语句
2找出语句后用explain 加上慢的整个语句 判断是否走索引
3查看表结构 show create table 表名\G
4查看表中列的重复值 select count(distinct 列名) from 表名;(查出列中的不重复的值唯一值)
5查看表中的总记录数 select count(*) from 表名;3000W 以下在线创建索引没有问题 如果大于则要想其他办法
6创建索引 create index 索引名 on 表名(建立索引的列);
7 再利用用explain 加上慢的整个语句 判断是否走索引成功
8 再show full processlist 查看慢语句是否减少
9 uptime 查看服务器负载

数据库负载过高,经过show full processlist;查寻 LIKE ‘%XXX%’语句很多如何解决
有可能这是在网站的搜索栏中用了模糊查寻
优化思路:
1 让用户登录后在搜索,这样减少了搜索次数,减少服务器压力
2 如果有大量的频繁搜索,一般是由爬虫爬网站引起,分析web日志 封掉IP
3 配置多个主从同步,实现读写分离,最好让LIKE’%xxx%’语句去从库查寻,减轻主库写压力
4 在数据库前端加memcache等缓存服务器
5 LIKE’%xxx%’语句在mysql里很难优化,可以通过搜索服务sphinx(俄罗斯的一款搜索软件)实现搜索
6 还可以利用c,ruby等语言开发程序,实现每日读库计算搜索索引,保存在服务器上提供搜索服务

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值