业务遇到问题解决 短连接(连接数达到设置的max_connections上限) show processlist查看空闲的连接,直接kill查看infomation_schema中的innodb_trx表和show processlist,查询事务内空闲的连接,kill提高max_connections的值 减少连接过程的损耗 先确认是否被连接行为打挂了,是的话重启的时候加上-skip-grant-tables命令跳过权限校验 查询慢的问题 索引设计问题 紧急上线索引的时候,可以先备库b设置set sql_log_bin=off,不写日志,然后alter table新增索引主备调换 原先的主库,现在的从库a执行set sql_log_bin=off,然后alter table新增索引 sql没写好 使用下面的rewrite_rules重写覆盖sql,就可以把新的sql代替旧的sql执行 mysql> insert into query_rewrite.rewrite_rules(pattern, replacement, pattern_database) values ("select * from t where id + 1 = ?", "select * from t where id = ? - 1", "db1"); call query_rewrite.flush_rewrite_rules(); mysql选错索引 给语句加上force index qps暴增 如果是新的业务上线导致的,就下线业务,如果是某个账户导致的,用管理员直接把账户删除,可以用重写功能把这个sql改成select 1(极度不推荐)