1.当搜索字段较少时,(例如:0,1)数据达到一定数量使用in时则会进行全表扫描,当然也可以进行强制使用索引(force index),强制使用索引后的搜索速度会要慢于全表扫描。
2.在有索引的情况且查询条件使用到索引列的话,会使用索引。select 语句使用了ignore index的话,则不会使用索引。
3.当建立的索引使用的时hash数据结构时,会使用索引。同时索引效率会要高于BTree+索引。建立hash数据时需要使用Memory存储引擎。
疑问:使用in进行查询后会使用range(范围索引)。如果id的不是连续的,按照道理应该会进行全表扫描的。
这个问题挺疑惑的,欢迎高手指点一二…