1、选取最适用的字段属性,表的宽度尽可能的小。
2、使用JOIN代替子查询。
3、查询条件尽量设置为not null,索引列尽量不能为空。
4、索引列不能使用函数,且避免索引列自动转换,列和值作比较的时候,函数尽量加在值上。
5、条件允许,使用>= <=代替like,若是需要必须使用like,若是可以不以%开头,尽量避免。
6、不影响插入或者更新的情况下(存在大批量插入或者更新事务),多建会使用到的索引列,尽量为ORDERBY、MAX、MIN创建索引列。
7、用exist代替in,如not in最好替换成 not exist。
8、尽量使用枚举值代替列的固定值。
9、经测试小表join大表效率更快(存在争议)。
10、全文索引应用于LIKE “%word%";HASH索引应用于"=","IN"和"<=>";btree索引是我常用的索引,二叉树嘛。
索引失效:
1、where 中使用 != 或 <> 或 or 或表达式或函数(左侧)
2、like 语句 % 开头
3、字符串未加’’
4、索引字段区分度过低,如性别
5、未匹配最左前缀








网友评论