1、mysql不支持top,它是採用limit來實現這一功能的;
2、當sql語句中含有in、like、exists時索引不起作用,開始變爲全表查詢;
3、語句中的in和exists這樣的條件能用子查詢就用子查詢,這樣性能會提升不少,當然用關聯查詢更好;
4、當遇到union這樣的聯合查詢時,要想提高性能,可以採用將每一個子查詢單獨開一個線程的方式來替代實現;
5、有時候將一個sql語句分拆成幾個小sql,並建臨時表,分步查詢會對性能提升有很大幫助,最近這個項目在sql沒有拆分之前耗時大於270秒,將其拆分幾個子語句分步查詢,並建立臨時表後,耗時降到25秒左右;
6、建索引不是越多越好,但是到底看所建的索引有無用處,我們可以同explain sql語句來查看,當某字段建了索引後它的查詢類型還是ALL,說明該索引無效。