1.查询时where的最左边一定是最精确的条件,比如索引字段在查询语句where的最左边,另外精确的字段比如id=5一般要放在最左边;
2.查询时尽量不要用in() not in()关键字做条件过滤而是改用exists()和not exists(),
性能上考虑的话,如果子表大主表小用exists ,子表小主表大用in的原则;
3.查询尽量不要用到or关键字,尽量用union all来替换成拼接查询;
4.查询尽量避免多层嵌套 select (select(select));
5.group by 分组后的语句再进行分组时,尽量不要用having,而是用子查询代替条件;
6.查询中尽量不要用<>,特别是索引字段用上>= <=;
7.建索引的时候,索引字段列的数据尽量不要出现null的值,这样在搜索时可能会导致索引失效,成为全表搜索;
8.分库、分表、分区的概念。