使用字段的整体作为索引关键字,有时即使使用字段前部分数据也可以识别某些数据,通过减少索引关键字的长度去加快语句的执行速度,
计算辨识度:利用总条数/去重后的条数=最大辨识度
取到最大辨识度则测试截取数据的前几位可以无限接近于最大辨识度
建立前缀索引的语法
//city_demo 表名,city建立索引的字段名,前7位是无限接近最大辨识度
ALTER TABLE `city_demo` ADD INDEX `idx_city` (`city`(7)) USING BTREE ;
-- 或者这个也行
ALTER TABLE `city_demo` ADD KEY `idx_city` (`city`(7))
-- 又或者直接用Navicat可视化操作也行
前缀索引的缺点
MySQL中无法使用前缀索引进行ORDER BY和GROUP BY,也无法用来进行覆盖扫描