企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持知识库和私有化部署方案 广告
#### 什么是前缀索引 通过字段前n位创建的索引就称为“前缀索引”。如果一个字段内容的前边的n位信息已经足够标识当前的字段内容,就可以把字段的前n位获得出来并创建索引,该索引占据空间更小、运行速度更快. 例如: * **关**伟伟 * **关**小宝 * **吕**纪无 * **刘**尚香 * **王**云斐 以上4个记录信息创建索引,完全可以把第一个字给获得出来创建索引,第一个字完全可以唯一标识每个字段内容。 语法: ~~~ alter table 表名 add key (字段(前n位位数)); ~~~ #### 到底前几位可以唯一标识字段的内容? 获取制作前缀索引的n的信息: 1. 去除字段重复内容并计算总数目. 2. 取字段的前(n)1、2、3.....位不重复的信息并计算总数目,n从1开始不断累加,直到总数目 与 ①计算的总数目相等,此时n就是我们设计前缀索引的数字n信息. mysql中截取字段的前n位信息,使用函数left(字段,长度).例如截取前5位信息: left(字段,5). #### 制作前缀索引 计算全部字段不重复记录的总条数: ~~~ select count(distinct 字段) from 表; ~~~ 计算前n位不重复记录的总条数,n从1开始累加: ~~~ select count(distinct left(字段,n)) from 表; ~~~ 比较两个统计的数据是否一致,如果一致就取N的值作为前缀索引. 前缀索引比普通索引速度要快很多.