负向条件查询不能使用索引,可以优化为in查询。
负向条件有:!=、<>、not in、not exists、not like等。
优化策略A:字段选择性
1、选择性较低索引 可能带来的性能问题
2、索引选择性=索引列唯一值/表记录数;(可执行show index from tableName命令看字段的Cardinality(散列程度))
3、选择性越高索引检索价值越高,消耗系统资源越少;选择性越低索引检索价值越低,消耗系统资源越多;
4、查询条件含有多个字段时,不要在选择性很低字段上创建索引
5、可通过创建组合索引来增强低字段选择性和避免选择性很低字段创建索引带来副作用;
6、尽量减少possible_keys,正确索引会提高sql查询速度,过多索引会增加优化器选择索引的代价,不要滥用索引;