其他分享
首页 > 其他分享> > 面试记录7.14

面试记录7.14

作者:互联网

mysql中一张表两个字段建了联合索引,需要单独查询两个字段,需要对每个字段单独加索引吗?

最左前缀原则规定了联合索引在何种查询中才能生效,规则如下:
如果想使用联合索引,联合索引的最左边的列必须作为过滤条件,否则联合索引不会生效。
这也就是说,联合索引其实拥有单列索引的作用。

联合索引(最左前缀原则)
什么是联合索引?

怎么去除多个平级的ifelse?

表驱动法

Map<?, Function<?> action> actionMappings = newHashMap<>(); // 这里泛型 ? 是为方便演示,实际可替换为你需要的类型 
// 初始化 
actionMappings.put(value1, (someParams) -> { doAction1(someParams)}); 
actionMappings.put(value2, (someParams) -> { doAction2(someParams)}); 
actionMappings.put(value3, (someParams) -> { doAction3(someParams)}); 
// 省略多余逻辑语句 
actionMappings.get(param).apply(someParams); 

策略模式加工厂

工厂类维护一个类型->处理类的一个map,处理类有一个公共的父类。

public class MedalServicesFactory { 
 private static final Map<String, IMedalService> map = new HashMap<>(); 
 static { 
  map.put("guard", new GuardMedalServiceImpl()); 
  map.put("vip", new VipMedalServiceImpl()); 
  map.put("guest", new GuestMedalServiceImpl()); 
 } 
 public static IMedalService getMedalService(String medalType) { 
  return map.get(medalType); 
 } 
} 

public class Test { 
 public static void main(String[] args) { 
  String medalType = "guest"; 
  IMedalService medalService = MedalServicesFactory.getMedalService(medalType); 
  medalService.showMedal(); 
 } 
} 

标签:7.14,someParams,索引,记录,面试,map,static,put,actionMappings
来源: https://www.cnblogs.com/autowin/p/16477278.html