mysql如何查缺索引_缺少索引导致的服务器和MYSQL故障。

故障现象:

网站访问缓慢。

数据库RDS: CPU满,连接数满,其他值都是空闲。

apache服务器:CPU正常,IO正常,流量报警,内存爆满。

解决思路:

一、没遇到过此情况,一脸懵逼。

二、请教大神寻求思路。

根据现行表明有可能是:

1、慢查询,表锁

2、CC攻击或者蜘蛛抓取导致大量的小查询(可能没有索引)

一、查看数据库,有没有存在慢查询和锁表情况。(show full processlist),关注:查看最长时间查询的几个连接。注意:(带动作的连接,如果只连接值是null)不操作可忽略

一、1:如果存在表锁查看什么表锁住了,show OPEN TABLES where In_use > 0;。

故障原因: 二、经过查询2条SQL缺少索引,但是这2条索引查询时间都在1秒正常值内,因为查询较多引起的堵塞。(果断添加这2条缺少的索引)。

故障原因:   二、2、SELECT * FROM tp_supplier WHERE supplier_id > 0 AND fenxiao_cate_id_1 = '1376827' AND is_show = 1 AND LENGTH(brand_logo) > 0 AND is_recommend = 1 ORDER BY order_by DESC LIMIT 0, 7  (该SQL查询字段中 tp_supplier.brand_logo > 0 传入的数据类型与表字段定义不一致,会导致索引失效,建议改为 tp_supplier.brand_logo > '0' )

三、5分钟后数据库恢复正常,网站恢复正常,一脸无懵逼。

常用故障诊断工具:top 、vmstat 、iotop、ifstatus、mytop、iftop -i eth1、iostat

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值