Mysql应急处理

短连接过多

1. 处理掉那些占着连接但是不工作的线程。

在show processlist的结果里,踢掉显示为sleep的线程

图中id=4id=5的两个会话都是Sleep 状态。而要看事务具体状态的话,你可以查information_schema库的innodb_trx表。

 

trx_mysql_thread_id=4,表示id=4的线程还处在事务中。优先断开事务外空闲太久的连接。

2. 减少连接过程的消耗

使用–skip-grant-tables参数启动。这样,整个MySQL会跳过所有的权限验证阶段,包括连接过程和语句执行过程在内。

慢查询性能问题

1. 索引没有设计

通过紧急创建索引来解决,假设你现在的服务是一主一备,主库A、备库B,这个方案的大致流程是这样的:

1. 在备库B上执行 set sql_log_bin=off(暂时关闭二进制记录功能,执行的某些语句不要同步到slave上。),也就是不写binlog,然后执行alter table 语句加上索引;

2. 执行主备切换;

3. 这时候主库是B,备库是A。在A上执行 set sql_log_bin=off,然后执行alter table 语句加上索引。

2. 语句没写好

call query_rewrite.flush_rewrite_rules()这个存储过程,是让插入的新规则生效。

3. MySQL选错了索引

给这个语句加上force index。当然,在上线前,就应该把慢查询日志打开,并且把long_query_time设置成0,确保每个语句都会被记录入慢查询日志。然后进行测试,留意rows_examined字段是否和预期的一致。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值