有一个用户抽奖表 因为有如下的查询需求
查询用户今日抽奖次数
查询用户是否中了实物奖品
故创建了如下的索引
KEY `mobile` (`mobile` , `draw_date`), #用户和抽奖日期
KEY `mobile_2` (`mobile` , `award_type`) #用户和奖品类型
对Mysql索引
突然感到有点困惑, 是不是相当于Mysql内部维护了如下的两个Map
Map<String, Map<Date, List<UserDraw>>> mobileDrawDateMap ;
Map<String, Map<String, List<UserDraw>>> mobileAwardTypeMap
查询的时候相当于执行下面的代码
//得到某用户今日抽奖次数
int drawCount = mobileDrawDateMap.get(mobile).get(drawDate).size();
//判断用户是否中了大奖 大奖奖品类型为20
boolean isWinBigAward = !mobileAwardTypeMap.get(mobile).get("20").isEmpty();
是否可以这样类比Mysql
的索引?