1、在表中建立索引,优先考虑where,group by使用到的字段
    2、尽量避免使用select ,返回无用的字段会降低查询,使用具体的字段代替
    3、尽量避免使用 in 和 not in ,使用between代替

    1. 原语句:select * from t where in (1,2,3)
    2. 优化:select * from t between 1 and 3

    4、尽量避免使用or,因为它会导致数据库放弃索引进行全表扫描

    1. select * from t where id=1 or id=3
    2. 优化: select * from t where id=1 union select * from t where id=1
    3. 如果union左右两边你的字段是同一个,则效率差不多,前者扫描的全表,后者扫描的是索引

    5、尽量避免在开头模糊查询,会导致数据库放弃索引进行全表扫描

    1. select * from t where username like '%man%'
    2. 优化:select * from t where username like 'man%'
    3. 尽量在字段后边使用模糊查询

    6、尽量避免进行null值判断,会导致数据库放弃索引进行全表扫描

    1. select * from t where score is null
    2. 优化: select * from t where score = 0
    3. 给字段添加默认值(0),对0进行判断

    7、尽量避免在where条件中等号的左侧进行,表达式,函数操作

    1. select * from t where score/10 = 9
    2. 优化: select * from t where score = 10*9
    3. 在等号的右侧进行

    8、当访问量大时,避免使用where 1=1,通常为了方便拼接查询条件,会默认使用该条件
    9、尽量使用数字型字段
    10、尽可能的使用varchar代替char,一是节省空间,二是对于查询来说,显然较小的字段搜索效率要高
    11、 尽量避免向客户端返回大量数据,分页获取
    12、尽量避免大事务操作,提高系统并发能力