近期对 PHP 与 MySQL 相关的优化
文章目录
BI 的线上经常报 MySQL 连接数耗尽,查的结果是部分表经常被某个查询锁住,然后其他访问这个表的查询连接就一直阻塞着。原因是这些本来要支持一定并发规模的表竟然用的是 MyISAM 引擎,我把相关表的引擎换成 InnoDB 了。
有些历史业务逻辑竟然用了 n * n 数量级条数的 MySQL 查询。这光花费在 IO 上的时间都是惊人的。优化后直接弄成一条 MySQL 查询,业务响应时间从 1、2 分钟降到秒开。
MySQL 的 WHERE IN
里不要写子查询,用连表方式会数量级上的快,这个原因具体看《高性能MySQL》吧。