前面一篇sql查询语句的优化,exists与in的更换对sql语句进行修改之后,将代码部署到服务器上,想着终于解决了长久以来一直想处理的速度慢的问题,
谁知道一启动,灾难性的一幕来了,有这么一个语句:
select * from POST t where t.POST_ID != ? and t.POST_ID IN (select t1.POST_ID from ASS_POST_TERM t1 where t1.TERM_ID in (select t2.TERM_ID from ASS_POST_TERM t2 WHERE t2.POST_ID = ?)) order by t.CLICK_COUNT desc
查询同分类的推荐文章的,在我本地的MariaDB中,零点一毫秒左右搞定,可是到服务器上后居然几分钟不出结果,
直接用mysql客户端连接到服务器mysql,在里面执行发现一样的情况,像死循环一样直到超时不出结果。
没办法,看来只能升级数据库了,
将网站弄为正在维护中,后台升级mysql 5.1到MariaDB 5.5,跟本地保持一致,免得以后又出现这类意料之外的问题。
在升级过程中又遇到不少问题,所幸都成功解决了,
完成之后再启动网站,查询速度终于到了毫秒级!!