MySQL有哪些“饮鸩止渴”提高性能的方法?
短链接风暴
第一种方法:先处理掉那些占着连接但是不工作的线程。
第二种方法:减少连接过程的消耗。
慢查询问题
导致慢查询的第一种可能是,索引没有设计好。
导致慢查询的第二种可能是,语句没写好。
导致慢查询的第三种可能是,MySQL选错了索引。
QPS突增问题
一种是由全新业务的 bug 导致的。假设你的 DB 运维是比较规范的,也就是说白名单是一个个加的。这种情况下,如果你能够确定业务方会下掉这个功能,只是时间上没那么快,那么就可以从数据库端直接把白名单去掉。
如果这个新功能使用的是单独的数据库用户,可以用管理员账号把这个用户删掉,然后断开现有连接。这样,这个新功能的连接不成功,由它引发的 QPS 就会变成 0。
如果这个新增的功能跟主体功能是部署在一起的,那么我们只能通过处理语句来限制。这时,我们可以使用上面提到的查询重写功能,把压力最大的 SQL 语句直接重写成"select 1"返回。