强制索引,即指定本次查询使用某个特定的索引,这样就可避免MySQL优化器使用低效的索引。
使用方法:表明后面加上force index(索引名)
SELECT * FROM `user` FORCE INDEX ( idx_create_time ) WHERE 1 = 1
哪些情况下不适合建索引
- 频繁更新的字段不适合建立索引
- where条件中用不到的字段不适合建立索引
- 表数据可以确定比较少的不需要建索引
- 数据重复且发布比较均匀的的字段不适合建索引(唯一性太差的字段不适合建立索引),例如性别,真假值
- 参与列计算的列不适合建索引
哪些情况下适合建索引
- 频繁作为where条件语句查询的字段
- 关联字段需要建立索引,例如外键字段,student表中的classid, classes表中的schoolid 等
- 排序字段可以建立索引
- 分组字段可以建立索引,因为分组的前提是排序
- 统计字段可以建立索引,例如count(),max()