1、单表千万级数据量 子查询 where in 要比 where exists 快(查询时间差了100倍)
2、需要对datetime类型进行group by时(众所周知,函数不走索引),把日期的值拆分,比如要按日进行分组,则增加字段int 存放yyyyMMdd(为什么不是varchar,尽量用int等小字节,加快速度)
3、数据量不大的临时表的存储引擎用engine=MEMORY ,优化效果很明显。数据量太大的不建议,因为很吃内存,内存不够数据可能会丢失数据或者中断存储过程
4、truncate是先执行drop操作,然后再执行create操作,执行完成后会恢复初始的表空间。(找资料时看到有文章说对于临时表要先truncate再drop,差点被坑死,故有此一记)
更优的方法当然是把数据放到nosql/newsql里去,奈何领导不同意,只能先从数据库层面入手了。