最近做项目,数据量非常大,都是上百万数量级的。发现很多以前习惯的写SQL的方式会导致执行的非长慢。总结一下,以便以后查阅。

1,网上说的很多的,防止索引无效的方法以及基本规范,这里就不多说了。

2,关于表结合,哪怕是inner,当超过5张时,所消耗的时间比4张时多的多,这时可以考虑将某张中间表(和A表结合,取某字段,目的是和D表结合)直接加在需要用到的表的EXISTS条件。

3,不要无限制的使用prepared预处理方式传设置参数的值,过多使用会导致最终执行的SQL在SQL工具中执行很快,但就是在程序中执行的和蜗牛一样。一些固定的,类似有效区分等变的少的可以直接拼在SQL中。