场景:同步Mysql中的数据到Redis,查询需要考虑效率,考虑type级别。
测试结果:
1. in多个主键也是range级别
2. mysql自己会优化代码,in如果只有一个值是const级别
3. 组合索引的顺序不影响最后的查询效率,Mysql会优化,但不应该依赖这种优化,写sql的时候我们还是要按照顺序写。
方案1,代码中循环处理,sql效率更高,但需要查询多次。
方案2,直接使用range级别,一次查询。
结论:
基于场景选择方案,因为有归档的动作,表中数量不是很大,range级别可以接受,而且避免代码中的循环,所以使用range。但如果数量太大,且只用于少量的补数据使用,可以考虑写循环的方案1。