问一个基本索引问题:
假设表创建了前缀索引,索引列为A列,B列,C列,
现在我要查询,a列=a,b列=b
select * from table1 where a列=a and b列=b 能命中索引
select * from table1 where b列=b and a列=a 不能命中前缀索引
这个原理规则我大概明白,但是我不明白的是,如此简单的一个 搜索优化器 功能都做不出吗?明显应当自动去命中前缀索引,而不去命中,还要使用的用户去知道前缀索引是什么吗? 我不明白程序为什么这么简单的事情做不了?
前缀索引只有36个字节而已 ,通常用的都是int主键更佳,如果你的b列是varchar超长字符,那么就会触发截断,这个时候索引还有效吗