面试记录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(); 
 } 
} 
posted @   衣来伸手饭来张口  阅读(54)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
点击右上角即可分享
微信分享提示